Git better

Git常用指令

  • 自报家门
1
2
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"

  • pwd 用于显示当前目录

$ pwd


  • init 把当前目录变成Git可以管理的仓库

$ git init


  • la -ah 用于查看隐藏的.git目录

$ ls -ah


  • add 把文件添加到仓库

$ git add <file>


  • commit 把文件提交到仓库

$ git commit -m <message>


  • status 查看库状态

$ git status


  • dif 查看修改内容

$ git diff <file>


  • log 查看历史记录

$ git log
$ git log --pretty=oneline

  • reflog 查看每一次命令

$ git reflog


  • reset 版本回退

–hard会回退到上个版本的已提交状态,而–soft会回退到上个版本的未提交状态,–mixed会回退到上个版本已添加但未提交的状态.

$ git reset --hard HEAD~<num>
$ git reset --hard <version>


  • cat 查看内容

$ cat <file>


  • 撤销工作区修改

$ git checkout -- <file>

  • 撤销暂存区修改

$ git reset HEAD <file>


  • 删除文件

$ git rm <file>


  • 添加远程库

$ git remote add origin git@github.com:<yourname>/learngit.git

  • 推送

$ git push -u origin master

  • 本地做了提交后

$ git push origin master

  • 查看远程库信息

$ git remote -v

  • 删除远程库

$ git remote rm <name>


  • 克隆

$ git clone git@github.com:<name>/gitskills.git


  • 创建并切换至新分支

$ git checkout -b <name>
$ git switch -c <name>

等同于

1
2
$ git branch dev
$ git checkout dev

1
2
$ git branch dev
$ git switch master
  • 查看分支

$ git branch

  • 合并分支

$ git merge <name>

  • 删除分支

$ git branch -d <name>

  • 强制删除

$ git branch -D <name>

  • --no-ff方式的git merge

$ git merge --no-ff -m "merge with no-ff" <name>

  • stash储藏工作现场

$ git stash

  • 查看

$ git stash list

  • 恢复现场

恢复并删除

1
2
$ git stash apply
$ git stash drop


$ git stash pop

  • 复制修改

$ git cherry-pick <version>

  • 推送冲突后抓取文件到本地合并

$ git pull

  • 变基

$ git rebase


  • 打标签

$ git tag <tag>
$ git tag <tag> <version>

还可以创建带有说明的标签,用-a指定标签名,-m指定说明文字:

$ git tag -a <tag> -m "info" <version>

  • 查看标签

$ git tag

  • 查看标签内容

$ git show <tag>

  • 删除标签

$ git tag -d <tag>

  • 推送标签

$ git push origin <tag>
$ git push origin --tags

  • 删除远程标签

先删除本地再:
$ git push origin :refs/tags/<tag>

补充

git1

参考资料

廖雪峰