Featured image of post Git的常用命令

Git的常用命令

记录一些常用命令作为备忘

# 基本操作

建立版本库:git init

查看结果:git status

查看不同:git diff

# 版本回退

查看提交日记:git log

回退:git reset --hard HEAD^

HEAD^表示上一个版本,HEAD^^表示前两个版本,HEAD~100表示前100个版本

恢复:git reflog查看命令历史,确定回到未来的哪个版本

# 撤销修改

  1. 直接丢弃工作区的修改时,用命令git checkout -- file
  2. 已经添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD <file>,第二步按1操作。

# 上传

1
2
3
4
git remote add origin 仓库链接     #将远程仓库和本地仓库绑定
git add .
git commit  -m  "提交信息"
git push -u origin 自己当前的分支名   #-u将本地库和远程库的分支关联,之后可以不加

# 下载

1
git clone 仓库链接

git clone到当前文件夹

1
git clone 仓库链接 .

# 分支管理

# 创建与合并分支

查看分支:git branch

创建分支:git branch <name>

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

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

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

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

  • 当Git无法自动合并分支时,就必须首先解决冲突,自己手动修改冲突文件再合并即可。
  • 查看分支合并图:git log --graph
  • 使用非快速模式合并,有commit:git merge --no-ff -m "merge with no-ff" dev

# Bug分支

需要紧急处理Bug时,可以使用git stash将现在的工作区暂存

恢复原来的工作区

  • 恢复但不删除stash内容:git stash apply
  • 手动删除stash内容:git stash drop
  • 恢复且删除stash内容:git stash pop

可以多次stash,恢复的时候,先用git stash list查看,然后恢复指定的stash,如:

1
git stash apply stash@{0}

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

# 多人协作

  • 查看远程库信息,使用git remote -v

  • 从本地推送分支,使用git push origin branch-name

  • 如果冲突,先git pull抓取远程的新提交,处理好后再push

  • 在本地创建和远程分支对应的分支:git checkout -b branch-name origin/branch-name

  • 建立本地分支和远程分支的关联:git branch --set-upstream branch-name origin/branch-name

  • 将非直线的提交日记变为直线:git rebase

# 标签管理

# 创建标签

  • 新建一个标签:git tag <name>,默认为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>
Licensed under CC BY-NC-SA 4.0
最后更新于 2021-01-18 12:00:00