放弃本地更改:
-
未添加到暂存区
git checkout - filename
, 如git checkout test
git checkout .
放弃所有
-
已添加到暂存区 (使用
git add
后)git reset HEAD filename
, 如git reset HEAD test
git reset HEAD .
放弃所有
-
已经提交到本地仓库 (使用
git commit
后)- 回退到上一版本
git reset --hard HEAD^
- 回退到任意版本
git reset --hard commitId
- 回退到上一版本
-
放弃本地修改,强制和远程同步, 使用
git pull
强制覆盖git fetch --all git reset --hard origin/master git pull
一套工作流:
-
先 clone 项目 (假设克隆 master 分支)
git clone
-
创建本地分支 (以当前的 master 分支为基础)
git checkout -b dev
-
进行修改后
# 当前在本地dev分支下 git add . git commit
-
切换至 master 分支
git checkout master
-
将 dev 合并至 master 分支
git pull # 远程可能有更新 git merge dev
-
推入 master 分支
git push
-
切换至本地 dev 分支并合并 master 分支, 继续开发
切换远程分支:
-
查看所有分支
git branch -a
-
切换远程分支
git checkout -b dev origin/dev # 切换至远程dev分支并在本地取命为dev
本地分支关联远程分支:
git branch --set-upstream dev origin/dev
查看本地对应的远程仓库地址:
git remote -v