撤销修改:
1、未提交到缓存区(git add),直接git checkout -- file_name。(使用版本库中的版本替换本地版本)
2、已经提交到缓存区(git add),先git reset HEAD file_name从缓存区中撤销;然后(如果需要)执行1。
3、如果已经提交到本地版本库(git commit) ?
4、如果已经提交到远程库(git push)?
删除文件:
git rm file_name
git commit -m “remove file”
基本工作流程:
1、创建分支
git branch branch_name
2、切换到分支
git checkout branch_name
1和2可合并为git checkout -b branch_name
3、在分支上修改并提交。
4、切换到master。
5、把分支合并到master
git merge branch_name
6、删除已经合并到master的分支
git branch -d branch_name
对每一个新任务都使用一个新分支来处理。
但一个任务未完成时,(没有commit代码),此时对新任务的处理:
1、先git stash保存本地修改。(如果不保存本地分支的修改,直接切换分支,git会使切换分支操作失败。)
2、git checkout -b branch_name,创建新分支并切换过去
3、在新分支上修改,并提交。然后删除分支。
4、切换回原任务分支,stash pop把原来保存的本地修改现场恢复。
同一个分支上多个人修改导致的冲突:
在git push 时发现冲突,使用git pull 把最新的版本拉到本地进行合并,然后再git push。
在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name
建立本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name
合并分支,但保留分支信息(在合并后删除分支的情况下):
git merge --no-ff -m "merge comment, not use fast forward" branch_name
使用git branch -d branch_name删除一个未合并的分支,git会提示删除失败;
使用git branch -D branch_name可以强制删除一个未合并的分支。