好方法:
git pull --rebase
修改
Git stash
Git pull --rebase
Git stash pop
Git add .
Git commit -m ''
git push origin HEAD:refs/for/dev
场景一:
撤销工作区的修改:git checkout -- file
场景二:
撤销暂存区的修改(只是add还未commit):1.撤销单个文件或文件夹:git reset HEAD -filename 2.撤销所有的已经add的文件:git reset HEAD .
场景三:
已经commit还未推送到远程:git reset --hard HEAD^(版本回退)
柔持git操作步骤
- [ ] git branch -av 确保在dev分支下,如果不在该分支下,用git checkout dev切换到该分支
- [ ] 查看修改的文件状态,git status
- [ ] 红色的修改文件,需要通过git add **,新增到git控制中,然后颜色会变绿
- [ ] 通过git commit -m “Bugfix: ….”,提交到本地仓库
- [ ] 通过git push origin HEAD:refs/for/dev,push到远程仓库
- [ ] 通过git pull --rebase,可以将远程仓库的代码拉到本地,注意分支,拉远程A分支到本地B分支,会自动merge,切记!!
提交到gerrit后要求修改再次提交时:
- [ ] git add ***
- [ ] 通过git diff --cached,查看这次修改的内容
- [ ] 提交到本地仓库:git commit --amend,将这次修改的内容覆盖最新的提交,如果最新的提交是其他人提交的,此时会有问题!!!
- [ ] push到远程仓库: git push origin HEAD:refs/for/dev
将dev的代码推到pre上,且在一条直线上:git push origin dev:pre
删除本地分支:
- [ ] git branch -d tmp(-D强制删除,不能删除当前的分支)
跟踪Git项目源代码:
- [ ] gitk --all&
取远程dev分支并分化一个新分支tmp:
- [ ] git checkout -b tmp origin/dev
将本地一个分支上的commit (de56ab78b4911fd648b8b86a46571db217a86b9e) , 放到当前分支下提交:
- [ ] git cherry-pick de56ab78b4911fd648b8b86a46571db217a86b9e
在有冲突的前提下,要先解决冲突,再continue,或者通过abort放弃操作:
- [ ] git cherry-pick --continue
- [ ] git cherry-pick --abort
push到远程仓库:
- [ ] git push origin HEAD:refs/for/dev
回退到某个版本:
- [ ] git reset --hard {commitID},退回到指定版本
- [ ] git reset --hard HEAD^,退到上个版本
- [ ] git reset --hard HEAD^^,退到上上个版本
撤销修改
- [ ] git checkout -- <file>,丢弃工作区的修改
- [ ] git reset HEAD <file>,撤销暂存区的修改,放到工作区
撤销git push之后的提交
- [ ] git revert {commitId},再git push。产生一个revert的提交
- [ ] git reset --hard {commitID},再git push。不产生新的提交。但是存在风险,容易将同伴的提交给撤销了
1.git pull --rebase
2.修改
3.git add -A
4.git commit -m "BOSS-1172:审核状态"
3.git push origin HEAD:refs/for/dev
解决冲突:
git log
1.首先是克隆项目
<pre data-lang="-1">git clone 项目地址
修改提交人昵称
git config --global user.name "你的名字(可以是中文)"
</pre>
2.然后进代码目录
<b>常用命令</b>有:
<pre>添加
git add 文件名 //添加单个文件
git add -A //添加所有文件
提交
git commit -am "注释内容" //提交到分支
git add命令实际上就是把要提交的所有修改放到暂存区(Stage),然后,执行git commit就可以一次性把暂存区的所有修改提交到分支
更新
git pull //更新
push
git push origin 分支名 //push到服务器
查看状态
git status
查看提交历史
git log
文件比较
git diff //工作文件比对暂存文件
git diff --cached //暂存文件和已经提交文件
git diff --staged //暂存文件和已经提交文件
移除文件
git rm
git rm --cached readme.txt //从暂存区及仓库移除,以后不再跟踪这个文件
移动或改名
git mv</pre>
<b>不常用的命令</b>:
解决版本冲突需要用到的
<pre>回退
git revert HEAD //回退到上一次提交
git revert HEAD^ //回退到上上一次提交,可以增加“^”来回到更前一次提交
---------注意revert回退工作目录后,可以立即做一个最新的commit,相当于拷贝一个旧版本到最新的位置
重置
git reset --hard HEAD //重置工作目录(不包括未跟踪的文件)
---------要恢复单个文件,可以checkout那个文件:git checkout -- filename
合并
git merge hotfix //合并hotfix分支到当前分支。注意,只是合并,合并之后的结果并未提交commit
git merge upstream/master //合并一个远程取回的分支
</pre>
<b>提交流程</b>:
<pre>
1.切换到develop开发分支 git checkout develop
2.拉取develop最新代码 git pull origin develop
3.基于develop创建自己的代码分支 git branch 你的分支名称
4.在自己的分支开发修改新增文件
5.如果有新增文件就 git add 文件名 多个文件可以 git add -A
6.提交到本地的版本库 git commit -am "提交改动信息" Commit message 必须填写
7.推送到远端分支 git push origin 你的分支名称
</pre>
切换到develop pull 然后切到 zhuleixiao merge develop 然后修改本地代码 然后commit 最后 push