使用心得
- 阶段性修改需要暂存,又不想commit,使用 git stage/add
-
查看文件改动
- git diff 显示当前工作区的文件和stage区文件的差异
- git diff --staged 显示stage区和HEAD的文件的差异
- git diff HEAD 显示工作区和上次递交文件的差异
-
使用git commit -a 之前,先使用 git status,git diff HEAD 仔细查看需要递交的内容,如果有内容想回退,使用以下方式
- 回退工作目录中所有未提交的修改,使用git reset --hard HEAD
-
回退某一个文件的修改(没做过git stage/add暂存操作的修改),使用git checkout -- <file>
-
对于暂存过的修改, 则使用 git reset HEAD <file>取消暂存,然后再做git checkout -- <file>撤销修改
-
- git commit 之后,如果想撤回,请参考本文后面的《版本回退命令的区别》
- git push之前需要做一次git pull
- 使用gitk查看version tree
- 创建分支并进入新分支 git checkout -b newbranch
- 获取某一个分支(branch_x)的某一个目录下(path_x)的所有文件 git checkout <branch_x> path_x/*
- git diff commit_id_1 commit_id_2 比较代码
- git 切分区前,需要git stash保存当前修改记录,然后切回来后敲git stash pop,将代码还原
- 添加一个新的远程仓库git remote add [new_repo_shortname] [url]
- 将本地branch push到远程仓库 git push -u [repo_shortname] local_branch
- 合并commit. (参考:如何合併多個commits)
- 运行git rebase -i HEAD~n后弹出界面
- 替换想要合并的commit,将pick替换成s,保存退出后,再次弹出界面
- 填写新的commit msg
- git mergetool
- git difftool
- git merge后,发现stage里有些代码不想commit,可以参考3.1.1的步骤将指定代码从stage中删除
- 删除及其远程分支 git branch -dr origin/bugfix && git push origin --delete bugfix (参考:Delete a Git branch both locally and remotely)
# Start a new feature git checkout -b new-feature origin/dev # Edit some files git add <file> git commit -m "Start a feature" # Edit some files git add <file> git commit -m "Finish a feature" git push origin new-feature #git push origin new-feature:new-feature # If you wish to set tracking information for this branch you can do so with: git branch -u origin/new-feature # Merge in the new-feature branch git checkout master git merge new-feature # Delete branch locally git branch -D new-feature # Delete branch on remote git push origin :new-feature
版本回退命令的区别
-
git revert 是撤销某次操作,此次操作之前的commit都会被保留
-
git reset 是撤销某次提交,但是此次之后的修改都会被退回到暂存区
-
git reset -soft : 取消了commit
-
git reset -mixed(默认) : 取消了commit ,取消了add
-
git reset -hard : 取消了commit ,取消了add,取消源文件修改
-