丢弃工作区修改
git checkout -- file_name
撤销暂存区的修改
git reset HEAD file_name
版本回退
git reset --hard HEAD^ #退回上一版本 git reset --hard [commit id] #退回到[commit id]版本
git log
查看命令历史
git reflog
删除文件
rm -rf foo.txt
此时
git status
会提示删除了文件,有两种情况,一种是确实要删除文件,则
git rm foo.txt
即可。另一种是删错了,则
git checkout -- foo.txt
git checkout
其实就是用版本库里的版本替换工作 区的版本。
远程仓库
创建SSH-Key
ssh-keygen -t rsa -C "your email@example.com"
添加SSH-Key
添加远程仓库
git remote add origin git@github.com:alfredxinglkey/learngit.git //添加后远程库的名字就是origin,这是git默认的叫法 git remote add origin https://github.com/alfredxinglkey/learngit.git //https除了速度慢,还有每次都需要输入口令
推送(push)
git push -u origin master //第一次推送需要加-u参数
克隆(clone)
git clone git@githuc.com:alfredxinglkey/learngit.git
分支管理
创建分支
git branch dev //创建分支dev git checkout -b dev //创建dev分支并切换到dev分支 git branch //列出所有分支
切换分支
git checkout master //切换到master分支
合并分支
git merge dev //合并dev分支到master分支
删除分支
git branch -d dev //删除dev分支
解决冲突
手动修改冲突文件后重新提交,然后再次合并。
分支管理策略
Fast forward模式下,删除分之后,会丢掉分钟自信息,需要手动强制禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样。从分支历史上就可以看出分钟自信息。
git merge --no-ff -m "merge with no-ff" dev //禁用fast-forward模式