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>