git常见问题
开发
一般的开发流程如下,git clone
代码后,在自己的本地分支上开发,避免主分支开发上的混乱
新建本地分支
git checkout -b dev
推送本地分支到远程
git push origin origin/dev
切换当前分支到master
git checkout master
将dev分支合并到master
git merge dev
冲突
同步代码前应尽量避免冲突
备份当前工作区(前提是,没有git commit,可以git add)
git stash
或者 加入注释以便以后好找回未提交的代码git stash save '正在做冒泡功能,保存一下2016-06-30....'
更新代码
git pull
还原工作区
git stash pop
撤销
1 | 术语: |
改提交说明:
$ git reset --soft HEAD^
工作区和暂存区不改变,但是引用向前回退一次。当对最新的提交说明或者提交的更改不满意时,撤销最新的提交以便重新提交。改提交文件内容:
$ git reset --mixed HEAD^
工作区不改变,但是暂存区会回退到上一次提交之前,引用也会回退一次。慎用!!!工作区所有未commit改动永久丢失!!!
$ git reset --hard HEAD^
彻底撤销最近的提交。引用回退到前一次,而且工作区和暂存区都会回退到上一次提交的状态。自上一次以来的提交全部丢失。慎用!!!工作区相应的文件未commit改动永久丢失。
$ git checkout -- filename
用暂存区中filename文件来覆盖工作区中的filename文件。相当于取消自上次执行git add filename以来(如果执行过)的本地修改。慎用!!!工作区相应的文件未push改动永久丢失。
$ git checkout branch -- filename
维持HEAD的指向不变。用branch所指向的提交中filename替换暂存区和工作区中相应的文件。注意会将暂存区和工作区中的filename文件直接覆盖。查看操作记录
git relog
查看提交记录
git log