新建仓库

# 先在远程新建一个仓库
# 然后在本地找一个目录, 先初始化一个本地仓库
git init
# 然后将本地仓库和远程仓库做关联
git remote add origin git@github.com:yogurtzzz/demo.git
# 然后在本地进行一些coding, 并push到远程仓库
git add .
git commit -m "init"
git push -u origin master
# 如果本地仓库因为某些原因丢失了它所track的远端仓库, 则可以用如下命令进行重新追踪
git branch --set-upstream-to=origin/master master
# 若远程仓库被删掉了, 则要在本地仓库中移除其所track的远端仓库
git remote remove origin
# 如何查看本地仓库所跟踪的远端仓库的地址
git remote show origin
git remote -v # 查看连接远程仓库的地址(可以看到用的是https还是ssh)
# 若每次push都需要输入账号和密码, 可能远程地址用的是https协议, 可以通过如下命令进行修改
git remote remove origin # 先移除origin
git remote add origin git@github.com:yogurtzzz/demo.git
# 查看所有远程分支
git branch -r
# 查看所有分支
git branch -a
git branch -d v1.2 # 删除本地的v1.2分支
git branch -vv # 查看本地仓库和远程仓库的对应情况


分支

# 新建分支
git branch bugFix #新建一个分支bugFix
git checkout bugFix #将当前分支切换到bugFix
git checkout -b bugFix #新建一个分支并切换过去
# 从远端仓库检出一个分支 ,并切换过去,下面检出远端的 origin/sprint-101 分支, 且在本地起名为 sprint-101,并切换到该本地的 sprint-101 分支
git checkout -b sprint-101 origin/sprint-101
# 普通切换分支
git checkout spring-101
# 删除分支
git branch -d dev # 删除本地的dev分支
# 删除远端分支
git branch -r -d origin/v1.2 # 删除本地的远程分支, r for remote
git push origin --delete v1.2 # 将远程分支的删除推送到服务器
# 将新建的远程分支推送到远端服务器
git checkout -b v1.6
git push origin v1.6:v1.6


远端新建分支后,更新本地分支

git remote update


查看本地分支和远程分支对应关系

git branch -vv


若远端分支删除了, 需要更新本地

git remote prune origin


查看历史提交

# 查看简短的提交信息
git log --pretty=oneline


版本回退

# 回退到上一个版本
git reset --hard HEAD^
# 回退到 abcd123 指定的版本
git reset --hard abcd123


多个提交记录合并成一个

# 比如最近有3个commit,它们的commitId分别为  abcd1,abcd2,abcd3
# 指定合并后的commitId,比如打算将abcd2和abcd3合并成一个
git rebase -i abcd1
# 进入编辑器
pick abcd2
squash abcd3
# 用wq保存退出, 这样abcd2和abcd3就合并为了一个


关于标签
标签其实是一个轻量级的分支,或者说是一个不可变的分支,它指向特定提交对象的引用。通常,我们可以使用标签来标记一些特定的提交。比如,在某次大版本上线前,我们将最后一个提交记录打上一个标签,将其标记为一个里程碑式的节点。方便对版本迭代进行追踪。



# 打标签
git tag v1.3 # 在当前HEAD指向的位置,创建本地标签, 标签名为 v1.3
git tag -a v1.3 -m "v1.3版本上线" # 创建标签, 并添加附注
git push origin v1.3 # 将本地标签 v1.3 推送到远程仓库

# 查看标签
git tag # 查看本地所有标签
git show v1.3 # 查看v1.3标签的详细信息, 能看到附注

# 删除标签
git tag -d v1.3 # 删除v1.3标签
git push origin :refs/tags/v1.3 # 将删除标签推送到远程分支

# 检出标签
git checkout v1.3 # 将HEAD指针指向v1.3, 此时会导致HEAD处于DETACH状态
git checkout -b back_v1.3 v1.3 # 创建一个分支back_v1.3, 并在这个分支上检出标签v1.3

附:git趣味学习网站:​​https://learngitbranching.js.org/​