目录
撤销删改
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令
git checkout -- file
场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,
第一步用命令
git reset HEAD <file>
就回到了场景1,第二步按场景1操作
场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库
删除文件
rm file //删除文件
git rm file //删除文件
如果还未git commit可以通过git checkout -- file 恢复
远程仓库
$ ssh-keygen -t rsa -C "youremail@example.com"//创建ssh-key,复制到github上
添加远程库
git remote add origin git@server-name:path/repo-name.git //添加远程库
//git@server-name:path/repo-name.git 从github上复制过来
git push -u origin master //推送至仓库
git push origin master
从远程库克隆
git clone git@github.com:michaelliao/gitskills.git
分支管理
查看分支:git branch
创建分支:git branch <name> //name 分支名
切换分支:git checkout <name> //
创建并切换分支:git checkout -b <name>
合并分支到当前分支 git merge <name> //name 为“当前分支”的合并到上一个分支
注:先切换到你要最终合并到的分支(主支),之后合并,其中的name为被合并的分支
如: a b c 三个分支,先将 c分支合并到a上,则,切换到a,合并c
删除分支: git branch -d <name>
解决冲突
遇到冲突,手动修改,再上传
git log --graph --pretty=oneline --abbrev-commit//查看分支合并图
分支管理策略
git merge --no-ff -m "merge with no-ff" [dev] // 禁用fast forward
//本次合并要创建一个新的commit,所以加上-m参数,把commit描述写进去
Bug分支
当前工作可能未完成,但需要进行一项bug的修改,可以先保存当前的状态,新建一个分支,之后在恢复。
git stash //保存当前现场
git stash list
git stash apply //恢复
git stash drop //删除
git stash pop //恢复并删除