常用命令
git branch -a
查看所有的分支,包括本地和远程
git checkout -b develop remotes/origin/develop
切换远程开发分支在本地创建影像
git status
查看文件的修改状态
git add src/main/java/com/onlyone/csw/controllers/Test.java
标记需要提交的文件,支持*通配符
git commit -m “备注”
将本地修改保存到本地仓库中,并添加备注
git push
将本地仓库修改推送到服务器上的仓库中
git pull
同步服务器最新内容到本地
git checkout 分支名
在分支之间切换
git merge 分支a
将分支a内容合到当前分支上,最后要执行git commit 和 git push
git branch -d 分支名
删除本地分支(删之前需要切换非当前分支)
git branch 分支名
在本地库创建新的分支
git push -u origin 分支名
提交本地创建的分支到远程服务器
git diff topic maste
直接将两个分支上最新的提交做diff
git diff
查看当前未提交的文件的改动点
git branch -v -v
有【】的表示和服务器关联
git reset –hard HEAD~3 | git reset –hard commit-id
会将最新的3次提交全部重置,只在本地生效 (http://www.cnblogs.com/mliudong/archive/2013/04/08/3007303.html)
git push -f origin 分支名
强制提交到远程服务器,此时回退了3个版本,git服务器的提交log也会清掉。
- 已经commit 了N次,需要退回到某一版本
git reset <commit-id> #默认就是-mixed参数。
修改代码 或者 git checkout 撤销修改
git push -f 强制提交
ps:查看git log,会发现原来已经提交过的log也会被删除
git stash
多分支开发,本地缓存。https://www.cnblogs.com/tocy/p/git-stash-reference.html
git branch
查看所有本地分支,带*为当前分支
git log
查看当前分支的提交记录
git log -p
查看代码改动点(所有)
git reset
git reset 参数
–soft
仅仅移动当前Head指针,不会改变工作区和暂存区的内容–mixed 默认
是reset的默认参数,移动head指针,改变暂存区内容,但不会改变工作区–hard
当前head指针、工作区和暂存区内容全部改变
如何回滚文件
- 修改完,还未执行git add
git checkout .
使用暂存区的文件覆盖工作区,所以执行完git add .之后,再执行该命令是无效的
git checkout .和git add .是一对反义词
- 修改完,还未执行git add
2.使用git add 提交到暂存区,还未commit之前
git reset 先用Head指针覆盖当前的暂存区内容
git checkout . 再用暂存区内容覆盖工作区内容
或者使用 git reset –hard 直接使用head覆盖当前暂存区和工作区3.已经git commit,还未git push
git reset –hard origin/master
从远程仓库把代码取回来,然后覆盖本地仓库、本地暂存区和工作区
或者使用 git reset –hard last_commit_id,覆盖本地仓库、暂存区和工作区,
其中查看 last_commit_id 命令为 git log
或者使用 git reset –mixed last_commit_id 覆盖本地的暂存区,
再执行 git checkout . 覆盖本地工作区
- 4.已经git push
- git reset –hard commit_id :当前head指针、工作区和暂存区内容全部改变为之前的commit_id版本
- git reset 最新的版本号 :移动HEAD指针改变暂存区,不改变工作区,工作区为之前commit_id版本,(直接push会报错,提示我当前的分支落后于线上分支,这步目的主要是移动HEAD指针) 或者 git push -f origin develop.