目录
如果没有安装git,终端执行以下命令安装;
sudo apt install git -y
1、设置用户名和邮箱(全局配置)
终端执行以下命令,设置用户名和邮箱,邮箱名尽量和远程仓库的邮箱名一致:
git config --global user.name 'zhangsan'
git config --global user.email 'zhangsan@gmail.com'
设置完成后,终端执行以下命令查看设置是否成功:
git config --list

2、初始化本地仓库
在工程目录下,终端执行以下命令,初始化仓库,我这里工程目录为Test:
git init

在隐藏文件中可以看到生成了.git和.gitignore。

3、.gitignore添加需要忽略的文件
在工程目录下,终端执行以下命令,打开.gitignore文件:
gedit .gitignore
里面会有一些默认的忽略内容,比如编译生成的文件、临时文件和输出结果。
直接在文件最后面,添加需要忽略的文件、文件夹。
文件夹后要加" / "。文件要加后缀。
例如:

4、添加文件到暂存区
在工程目录下,终端执行以下命令,检查当前状态:
git status

红色内容就是还未提交的内容。
终端执行以下命令,添加所有文件(包括子目录):
git add .
如果想添加指定内容,可以参考下列命令:
git add src/
git add requirements.txt
添加完后,终端执行以下命令,绿色的就表示已经添加暂存区成功了:
git status

5、提交更改
在工程目录下,终端执行以下命令,其中"first commit"为提交说明,自己定义:
git commit -m "first commit"
白色的就表示提交成功了。

执行以下命令,可以查看提交日志:
git log

6、提交远程仓库
通过以下链接,进入github,需要科学上网才能进入:
登录 GitHub,点击右上角 "+" → "New repository",新建仓库。

填写仓库名 "test",自己定义。选择public公开/private私有,最后点击 "Create repository"创建好了一个名为"test"的仓库。

添加远程仓库地址,地址就是下面的:
git remote add origin https://github.com/(地址).git

推送本地仓库到远程:
git branch -M main # 将默认的 master 分支重命名为 main
git push -u origin main

username 就是注册的github 账号的名字。
password 并不是账号登陆密码,有几种方式,这里通过Personal access tokens的方式输入密码。
登录你的 GitHub 账户。点击右上角头像 -> Settings。

在左侧边栏,点击 Developer settings。

点击 Personal access tokens-> Tokens (classic)。
点击 Generate new token-> Generate new token (classic)。

给 Token 起一个描述性名称,这里取的"github"
选择 Expiration(有效期)。为了安全,建议设置一个有效期(如 30 天、90 天)。你也可以选择 No expiration(不推荐)。
在 Select scopes部分,勾选你需要的权限 。对于基本的推送代码到私有仓库,必须勾选 repo 。根据你的需求,可能还需要勾选其他权限(如 workflow用于操作 Actions)。对于简单推送代码到已有私有仓库,repo通常足够。
滚动到页面底部,点击 Generate token。

正确输入username和password,开始上传即可成功。

若要克隆远程仓库到本地,终端执行以下命令即可:
git clone https://github.com/(网址).git


关于远程仓库的操作,还有以下命令可以使用:
# 查看远程仓库
git remote
# 查看远程仓库详细信息
git remote -v
# 查看特定远程仓库信息
git remote show origin
# 修改远程仓库地址
git remote set-url origin https://github.com/user/new-repo.git
# 删除远程仓库与本地的连接
git remote remove origin
# 拉取远程代码
git pull origin main
7、创建发布分支
在工程目录下,终端执行以下命令,查看当前本地分支:
git branch

在工程目录下,终端执行以下命令,创建新的分支:
git branch (分支名)
我这里的分支名为"libtorch",名字自己定义即可。然后执行,git branch 查看当前分支。
现在有两个分支了,绿色并且前面有" * "的为当前所在分支。这里需要切换分支到 libtorch。

在工程目录下,终端执行以下命令,切换分支:
git checkout (分支名)
切换成功后,执行 git branch ,查看已经切换到libtorch分支了。

对文件进行修改后,准备在新分支开始提交。
在工程目录下,终端执行以下命令,检查当前状态:
git status

此时有requirements.txt 文件需要提交。
在工程目录下,终端执行以下命令,添加文件至暂存区:
git add requirements.txt
如果有多个文件或文件夹,用以下命令:
git add .
添加完后,终端执行以下命令,提交:
git commit -m "提交说明"
使用 git status 查看状态。
在工程目录下,终端执行以下命令,提交至远程仓库:
git push -u origin (分支名)
在github 仓库里能看到此时已经有两个分支了,并且requirements.txt 文件只在libtorch分支下,main分支下没有该文件。

分支的使用还有以下命令:
# 合并分支(先切换到目标分支)
git checkout main
git merge (分支名)
# 删除本地分支
git branch -d (分支名)
# 删除远程分支
git push origin --delete (分支名)
8、发布不同版本
在工程目录下,终端执行以下命令,给当前提交的版本打标签:
git tag v2.0
或
git tag -a v2.0 -m "版本说明"
终端执行 git log 查看提交记录,此时最新的提交标签已经是v2.0。

终端执行以下命令,为以前提交的版本打标签,哈希值就是那一长串代码:
git tag -a v1.0 <commit-hash> -m "版本说明"
终端执行 git log 查看提交记录,此时标签都已经打好。

终端执行以下命令,根据自己需要,推送标签到GitHub。
# 推送单个标签
git push origin v1.0
# 推送所有标签
git push origin --tags
# 或指定多个标签
git push origin v1.0 v2.0 v3.0

在github 仓库里能看到有两个版本,并且里面的内容是不一样的。

标签相关的其他命令:
# 查看所有标签
git tag
# 查看标签详情
git show v1.0
# 删除本地标签
git tag -d v1.0
# 删除远程标签
git push origin --delete v1.0
也可以在github 仓库里自己定义版本,在GitHub上创建Release,点击"Create a new release"。

选择时将Tag标签版本和Target对应上,Target可以根据分支和最近提交选择。点击"Publish release"即可。


