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>
