Git基本操作整理

Git基本操作整理

基本命令

  • 初始化一个Git仓库:git init
  • 添加文件到暂存区:git add <file>
  • 删除文件:git rm <file>
  • 提交:git commit -m <message>
  • 工作区状态:git status
  • 查看有无修改:git diff <file>
  • 查看提交历史:git log
  • 查看命令历史:git reflow

版本回退

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

  • 退回上一个版本:git reset --hard HEAD^
  • 通过版本好回退:git reset --hard commit_id

撤销修改

  • 丢弃工作区的修改:git checkout -- file
  • 工作区进行了修改,并且添加到了暂存区时,想丢弃修改,分两步。第一步用命令git reset HEAD <file>回到上述状态,再按上述描述操作

远程仓库

  • 添加关联一个远程库:git remote add origin git@server-name:path/repo-name.git
  • 关联后,使用命令git push -u origin
  • 推送某个分支的更新:push origin master
  • 克隆一个远程仓库:git clone <地址>

分支管理

  • 查看分支:git branch
  • 创建分支:git branch <name>
  • 切换分支:git checkout <name>
  • 创建+切换分支:git checkout -b <name>
  • 合并某分支到当前分支:git merge <name>
  • 分支合并图:git log --graph
  • 删除分支:git branch -d <name>
  • 保存当前工作现场:git stash
  • 查看保存的工作现场列表:git stash list
  • 恢复:
    • git stash apply恢复,但是恢复后,stash内容不会删除,需要用git stash drop来删除
    • git stash pop,恢复时会删除stash的内容
    • 恢复指定的stash:git stash apply stash@{序号}
  • 强制删除没有合并过的分支:git branch -D <name>

多人协作常见场景

  • git push origin <branch-name>推送自己的修改;
  • 如果远程分支相较于本地更新,需要先用git pull尝试进行合并;
  • 如果合并存在冲突,则手动解决冲突,并在本地提交;
  • 没有冲突或者解决掉冲突后,重新用git push origin <branch-name>推送就能成功;
  • 使用git pull时提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to <branch-name> origin/<branch-name>
文章作者: DongyangHu
文章链接: http://hudongyang.com/2019/11/29/git-command/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Sunshine