乐趣区

常用Git命令

根据廖雪峰的 git 教程整理的命令集合,以供学习使用~~~

安装 git 完成后,需要先登录账户
git config --global user.name "IceyCity"
git config --global user.email "120174xxx@cug.edu.cn"

创建版本库

初始化 git 仓库:git init
查看文件修改内容:git diff file
查看历史提交日志:git log
查看命令历史:git reflog

版本回退

git reset --hard HEAD^ 回到上一个版本
git reset --hard 版本号 回到指定版本

撤销修改

git add 提交到暂存区
git commit 提交到当前分支
git checkout -- file 撤销你修改的内容
git reset HEAD file 把添加到暂存区的修改撤回

删除文件

  • 正常删除:通过命令删除:git rm file -> git commit -m ""
  • 本地删错了,版本库里还存在:通过 git checkout -- file 恢复

远程仓库

创建密钥:ssh-keygen -t rsa -C "120174xxx@cug.edu.cn"
id_rsa.pub

将本地仓库与远程仓库关联,并推送本地仓库内容:

git remote add origin git@github.com:IceyCity/ 本地仓库名.git
git push -u origin master   // 推送本地内容,并关联远程分支
分支管理

master指向当前提交,HEAD指向当前分支。

git switch -c dev   // 创建并切换分支
git merge dev   // 合并分支
git branch -d dev   // 删除 dev 分支
  • 当主分支与开发分支都有各自的 commit 之后合并,会发生冲突,需手动解决。
  • git log --graph 命令可以看到分支合并图。
  • 要想看到合并分支的历史信息,需要加 --no-ff 参数,在合并分支的时候,不采用快速合并的方式。

git merge --no-ff -m "merge with no-ff" dev

git stash   // 将所做的工作内容先隐藏
git stash list   // 查看有几个 stash
git stash apply   // 恢复工作内容不删除 stash
git stash pop   // 恢复工作内容并删除 stash
git stash apply stash@{0}   // 恢复指定的 stash
  • 通过 git cherry-pick 版本号 可以把别的分支的提交复制到当前分支。
  • 如果要丢弃一个没有被合并过的分支,可以通过 git branch -D <branch> 强行删除。

多人协作

  • 查看远程库信息:git remote -v
  • 推送远程主 / 开发分支:git push origin master/dev
  • 创建远程开发分支到本地:git checkout -b dev origin/dev

你的小伙伴已经向 origin/dev 分支推送了他的提交,而碰巧你也对同样的文件作了修改,并试图推送, 推送失败,提示 git pull, 然而也失败,原因是:
没有指定本地 dev 分支与远程 origin/dev 分支的链接:git branch --set-upstream-to=origin/dev dev

git rebase操作可以把本地未 push 的分叉提交历史整理成直线

标签管理

打新标签:git tag <name>
查看所有标签:git tag
给历史提交打标签:git tag <tagname> <commmit id>
查看标签信息:git show <tagname>
可以指定标签信息:git tag -a <tagname> -m "blablabla..."
删除标签:git tag -d <tagname>
推送标签到远程:git push origin <tagname>
推送所有标签:git push origin --tags

删除远程标签:
先删本地:git tag -d <tagname>
在删远程:git push origin :refs/tags/<tagname>

退出移动版