GitStudy

Git的常用命令

初始化配置用户名和邮箱

1
2
git config --global user.name "Your Name"
git config --global user.email "email@example.com"

git init命令把目录变成Git可以管理的仓库

  1. git add <文件名>将文件添加到仓库
  2. git commit提交 :git commit -m "xxx"

git status 查看仓库当前状态

git diff 查看具体修改

git log命令查看修改历史

git reset --hard HEAD^回退到上一个版本

git reset --hard commit_id

git reflog 查看历史所有命令

git checkout -- file可以丢弃工作区的修改

git reset HEAD <file>可以把暂存区的修改撤销掉(只是add,没有commit)

命令git rm用于删除一个文件。如果一个文件已经被提交到版本库,那么你永远不用担心误删,但是要小心,你只能恢复文件到最新版本,你会丢失最近一次提交后你修改的内容

git remote add origin git@github.com:<username>/<仓库名>.git 本地仓库与远程仓库连接

git push -u origin master 第一次推送本地仓库内容到远程仓库

git push origin master 推送本地仓库内容到远程仓库

查看分支:git branch

创建分支:git branch <name>

切换分支:git checkout <name>或者git switch <name>

创建+切换分支:git checkout -b <name>或者git switch -c <name>

合并某分支到当前分支:git merge <name>

删除分支:git branch -d <name>

git log --graph命令可以看到分支合并图。

当手头工作没有完成时,先把工作现场git stash一下,然后去修复bug,修复后,再git stash pop,回到工作现场;

在master分支上修复的bug,想要合并到当前dev分支,可以用git cherry-pick <commit>命令,把bug提交的修改“复制”到当前分支,避免重复劳动

如果要丢弃一个没有被合并过的分支,可以通过git branch -D <name>强行删除。

  • 查看远程库信息,使用git remote -v
  • 本地新建的分支如果不推送到远程,对其他人就是不可见的;
  • 从本地推送分支,使用git push origin branch-name,如果推送失败,先用git pull抓取远程的新提交;
  • 在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致;
  • 建立本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name
  • 从远程抓取分支,使用git pull,如果有冲突,要先处理冲突。

git tag <name>就可以打一个新标签

  • 命令git tag <tagname>用于新建一个标签,默认为HEAD,也可以指定一个commit id;
  • 命令git tag -a <tagname> -m "blablabla..."可以指定标签信息;
  • 命令git tag可以查看所有标签。
  • 命令git push origin <tagname>可以推送一个本地标签;
  • 命令git push origin --tags可以推送全部未推送过的本地标签;
  • 命令git tag -d <tagname>可以删除一个本地标签;
  • 命令git push origin :refs/tags/<tagname>可以删除一个远程标签。