标签:
1,修复线上bug
如上一章节图例所描述,master主分支代码永远要和线上代码保持一致,一旦线上出现bug,需要从master分支上进行修改,以下修改后,对master分支的操作,这里使用# 作为命令的注解,使用时请忽略#之后的文字
#当前分支在master上
git checkout master
#commit master分支的修改
git add . //使用-u参数git add -u
git commit -m "修复线上bug"
# 注意,这里一定要使用这种方式推送代码到远程
git push origin master
# 测试通过并且上线成功之后,需要及时更新snapshot分支代码,也就是说将master分支代码合并到snapshot分支上去
git checkout snapshot
# 这里可以使用好几种方式进行合并,git merge, git rebase,这两个命令还是有一定的区别
git merge master
# 然后提交到snapshot远程
git push origin snapshot
# 对于团队其他人,应该及时在snapshot和master分支上pull最新的代码到本地
2,开发新功能
如上一章节图例所描述,snapshot分支主要用于开发新功能,这个应该和主干分支区分开,目前只有snapshot一个分支版本,如果团队规模在扩大,产品需求多样化时,可能就不止这一个分支了。
#切换到snapshot分支上
git checkout snapshot
#commit snapshot分支上的修改
git add . //使用-u参数git add -u .
git commit -m "提交新功能"
#注意,这里一定要push到snapshot上
git push origin snapshot
#测试通过并且上线之后,需要及时更新master主分支,要将线上代码和主分支代码保持一致
git checkout master
#合并snapshot分支代码
git merge snapshot
#如果有冲突则编辑冲突,最后push到master
git push origin master
# 这样就将snapshot新版本的代码合并到master主分支上
3,回退某次提交
git reset --hard HEAD^
根据–soft –-mixed –hard,会对working tree和index和HEAD进行重置:
git reset –-mixed:此为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,回退commit和index信息
git reset –-soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可
git reset –-hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容
HEAD 最近一个提交
HEAD^ 上一次
<commit_id> 每次commit的SHA1值. 可以用git log 看到,也可以在页面上commit标签页里找到
4,git stash
git stash
使用stash命令可以暂时保存当前分支的更改。
git stash apply
该命令可以恢复我们上次stash的文件。
git stash drop
git stash drop stash@{0}
命令输出结果:
git stash drop stash@{0}
Dropped stash@{0} (e93eda9da5af021bed1e025f7670b2a44b909c48)
该命令可以删除我们对应stash栈存储的文件。
如果我们想直接恢复版本,并删除对应stash,则可以使用如下命令:
git stash pop
修改对应本地git的配置文件,修改对应的远程仓库地址为新仓库地址。
vim .git/config
6, git放弃本地未提交的修改
git clean -df
git reset --hard
7,推送远程分支
erp-trade git:(privilege) git push origin privilege
git push origin --delete <branchName>
1. 在本地新建一个分支: git branch Branch1
2. 切换到你的新分支: git checkout Branch1
从远程获取分支: git checkout -b local-branchname origin/remote_branchname
3. 将新分支发布在github上: git push origin Branch1
4. 在本地删除一个分支: git branch -d Branch1
5. 在github远程端删除一个分支: git push origin :Branch1
9,删除远程分支
如果不再需要某个远程分支了,比如搞定了某个特性并把它合并进了远程的 master 分支(或任何其他存放稳定代码的分支),可以用这个非常无厘头的语法来删除它:git push [远程名] :[分支名]。如果想在服务器上删除 serverfix 分支
? erp git:(master) git push origin :snapshot_jxc
To git@git.superboss.cc:dmj/erp.git
- [deleted] snapshot_jxc
10,更新本地所有分支
git remote prune origin
11,git tag
? jxc git:(master) git tag -a 1.3.6 -m "按数量拆单前版本备份"
? jxc git:(master) git tag
1.3.6
? jxc git:(master) git push origin master
Everything up-to-date
? jxc git:(master) git push origin 1.3.6
Counting objects: 1, done.
Writing objects: 100% (1/1), 191 bytes | 0 bytes/s, done.
Total 1 (delta 0), reused 0 (delta 0)
To git@git.superboss.cc:dmj/jxc.git
* [new tag] 1.3.6 -> 1.3.6
删除本地tag
git tag -d v1.0.0
12,子模块
git submodule init fedevkm
git submodule update fedevkm
标签:
原文地址:http://blog.csdn.net/mergades/article/details/51355339