Git 常用命令笔记 + 心得

in 学习笔记 with 2 comments 访问: 4,825 次

虽然每天都在用,但是从来没系统的学习过git,遇到特殊问题也总是东拼西凑查资料,于是觉得应该好好学习一下git的知识与原理,让自己的知识系统更坚固完善。

git 常用命令

git 全局设置

git config --global user.email"yourEmail" 设置你的邮箱
git config --global color.ui true 设置git的颜色高亮

git config --global alias.co checkout
git config --global alias.br branch

git config --global alias.ci commit
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"

git 本地操作

commitId是每次提交生成的hash类型的ID,通过git log 可以看到。

也可以通过git reset --hard HEAD^回退到上次修改,使用--hard参数会同时更新暂存区和本地工作空间的文件,所以使用前最好先保存<commitId>

HEAD^^^表示上上上次,HEAD~10表示上*10次,只要知道commitId,就可以穿梭到任意版本

如果文件错误更新后,并git add了,那么上面的checkout命令已经不能回退到git add之前了,可以使用git reset HEAD <fileName>撤销掉暂存区的修改,

然后使用git checkout -- <fileName>恢复。

如果不仅git add了,同时 git commit了,使用上文提到的

git reset --hard <commitId> 进行版本回退/前进

git checkout其实是用版本库里的版本替换工作区的版本

git checkout <branchName> 切换分支,会重写工作区,也就是检出单个文件的原理所在。那么就很好理解接下来的这一条:git checkout <commitId> -- /path/<fileName>/git checkout <branchName> -- /path/<fileName>还原某个commit版本/分支的某个文件

强制拉取覆盖本地

git fetch --all
然后,你有两个选择:

git reset --hard origin/master
或者如果你在其他分支上:

git reset --hard origin/<branch_name>

git 远程操作

git clone git@github.com:ShyZhen/gitTest.gitgit clone将整个项目克隆下来,包括项目名

git tag -d <tagName>删除一个本地标签 ,git push origin :refs/tags/<tagName>删除一个远程标签(本地先删除)。
git fetch --all && git reset --hard origin/master && git pull 强拉远程

常用高级命令

    • git update-index --assume-unchanged /path/file 可以忽略这个文件的修改,从而不用提交到库里面。对应使用
      git update-index --no-assume-unchanged /path/file 来恢复跟踪。
    • git reset --hard origin/main 远程分支强制覆盖本地
  • 赞赏支持
    Responses
    1. 我还是喜欢乌龟git 乌龟svn

      Reply
      1. @d0cklng

        宇哥!

        Reply