Python 用于从模板创建新GitHub存储库的Bash脚本
我正在编写一个bash脚本,它可以从我已经创建的GitHub模板初始化一个新的存储库。我希望脚本复制中列出的步骤,但我不知道如何从命令行使用GitHub模板 我在WSL2上使用Ubuntu18.04。我已经定义了一个函数Python 用于从模板创建新GitHub存储库的Bash脚本,python,bash,git,github,windows-subsystem-for-linux,Python,Bash,Git,Github,Windows Subsystem For Linux,我正在编写一个bash脚本,它可以从我已经创建的GitHub模板初始化一个新的存储库。我希望脚本复制中列出的步骤,但我不知道如何从命令行使用GitHub模板 我在WSL2上使用Ubuntu18.04。我已经定义了一个函数project()(见下文),它接受一个输入(新项目的名称),并且应该执行以下操作: cd到我的主目录 调用python脚本create_project.py,该脚本在本地创建新项目的文件夹,并在GitHub上创建远程repo cd到新项目的本地目录 从我的模板初始化回购 连接到
project()
(见下文),它接受一个输入(新项目的名称),并且应该执行以下操作:
create_project.py
,该脚本在本地创建新项目的文件夹,并在GitHub上创建远程repo#/bin/bash
功能项目(){
cd/主页/主页
python3 create_project.py$1
cd/home/levicrews/$1
git init--模板=
git远程添加源git@github.com:Levicrows/$1.0吉特
git添加。
git提交-m“初始提交”
git-push-u源主机
}
导入系统
导入操作系统
从github导入github
path=“/home/levicrows/”
username=”“#在此处插入您的github用户名
password=”“#在此处插入您的github密码
def create_project():
folderName=str(sys.argv[1])
os.makedirs(path+str(sys.argv[1]))
user=Github(用户名、密码)
repo=user.create\u repo(sys.argv[1])
打印(“成功创建的存储库{}”。格式(sys.argv[1]))
如果名称=“\uuuuu main\uuuuuuuu”:
创建_项目()
不幸的是,我所有的模板文件最终都位于新repo的/.git目录中(通过阅读
gitinit
上的文档,我现在意识到这是--template
标志的预期行为)。我可以对脚本进行哪些更改以从GitHub复制“使用此模板”行为?如果模板项目不是git存储库,您可以在初始化之前复制它:
#!/bin/bash
function project() {
cd /home/levicrews
cp -a /home/levicrews/template-project $1
python3 create_project.py $1
cd /home/levicrews/$1
git init
git remote add origin git@github.com:levicrews/$1.git
git add .
git commit -m "Initial commit"
git push -u origin master
}
如果模板项目已具有.git目录,则需要将其删除:
#!/bin/bash
function project() {
cd /home/levicrews
cp -a /home/levicrews/template-project $1
rm $1/.git
python3 create_project.py $1
cd /home/levicrews/$1
git init
git remote add origin git@github.com:levicrews/$1.git
git add .
git commit -m "Initial commit"
git push -u origin master
}
如果git历史记录很大,则复制到.git并再次删除.git文件夹将效率低下。您可以使用以下黑客:
git-archive--format=tar--remote=/home/levcrews/template-project-master | tar-xf-