码迷,mamicode.com
首页 > 其他好文 > 详细

Git基本使用

时间:2016-05-12 21:11:42      阅读:249      评论:0      收藏:0      [点我收藏+]

标签:

1,修复线上bug

  1. 如上一章节图例所描述,master主分支代码永远要和线上代码保持一致,一旦线上出现bug,需要从master分支上进行修改,以下修改后,对master分支的操作,这里使用# 作为命令的注解,使用时请忽略#之后的文字
  2. #当前分支在master上
  3. git checkout master
  4. #commit master分支的修改
  5. git add . //使用-u参数git add -u
  6. git commit -m "修复线上bug"
  7. # 注意,这里一定要使用这种方式推送代码到远程
  8. git push origin master
  9. # 测试通过并且上线成功之后,需要及时更新snapshot分支代码,也就是说将master分支代码合并到snapshot分支上去
  10. git checkout snapshot
  11. # 这里可以使用好几种方式进行合并,git merge, git rebase,这两个命令还是有一定的区别
  12. git merge master
  13. # 然后提交到snapshot远程
  14. git push origin snapshot
  15. # 对于团队其他人,应该及时在snapshot和master分支上pull最新的代码到本地

2,开发新功能

  1. 如上一章节图例所描述,snapshot分支主要用于开发新功能,这个应该和主干分支区分开,目前只有snapshot一个分支版本,如果团队规模在扩大,产品需求多样化时,可能就不止这一个分支了。
  2. #切换到snapshot分支上
  3. git checkout snapshot
  4. #commit snapshot分支上的修改
  5. git add . //使用-u参数git add -u .
  6. git commit -m "提交新功能"
  7. #注意,这里一定要push到snapshot上
  8. git push origin snapshot
  9. #测试通过并且上线之后,需要及时更新master主分支,要将线上代码和主分支代码保持一致
  10. git checkout master
  11. #合并snapshot分支代码
  12. git merge snapshot
  13. #如果有冲突则编辑冲突,最后push到master
  14. git push origin master
  15. # 这样就将snapshot新版本的代码合并到master主分支上

3,回退某次提交

  1. git reset --hard HEAD^
  1.  根据–soft –-mixed hard,会对working treeindexHEAD进行重置:
  2.    git reset –-mixed:此为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,回退commitindex信息
  3.    git reset –-soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可
  4.    git reset –-hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容
  5.    HEAD 最近一个提交
  6.    HEAD^ 上一次
  7.    <commit_id>  每次commitSHA1值. 可以用git log 看到,也可以在页面上commit标签页里找到

4,git stash

  1. git stash

使用stash命令可以暂时保存当前分支的更改。

  1. git stash apply

该命令可以恢复我们上次stash的文件。

  1. git stash drop
  1. git stash drop stash@{0}

命令输出结果:

  1. git stash drop stash@{0}
  2. Dropped stash@{0} (e93eda9da5af021bed1e025f7670b2a44b909c48)

该命令可以删除我们对应stash栈存储的文件。

如果我们想直接恢复版本,并删除对应stash,则可以使用如下命令:

  1. git stash pop
5,git提交代码到其他远程项目分支


修改对应本地git的配置文件,修改对应的远程仓库地址为新仓库地址。

  1. vim .git/config
直接push 对应分支即可。

6, git放弃本地未提交的修改

  1. git clean -df
  1. git reset --hard

7,推送远程分支

  1.  erp-trade git:(privilege) git push origin privilege

  1. git push origin --delete <branchName>
8,远程分支关联和操作
  1. 1. 在本地新建一个分支: git branch Branch1  
  2. 2. 切换到你的新分支: git checkout Branch1
  3.      从远程获取分支: git checkout -b local-branchname origin/remote_branchname  
  4. 3. 将新分支发布在github上: git push origin Branch1          
  5. 4. 在本地删除一个分支: git branch -d Branch1  
  6. 5. github远程端删除一个分支: git push origin :Branch1  

9,删除远程分支

  1. 如果不再需要某个远程分支了,比如搞定了某个特性并把它合并进了远程的 master 分支(或任何其他存放稳定代码的分支),可以用这个非常无厘头的语法来删除它:git push [远程名] :[分支名]。如果想在服务器上删除 serverfix 分支
  1. ?  erp git:(master) git push origin :snapshot_jxc
  2. To git@git.superboss.cc:dmj/erp.git
  3. - [deleted]         snapshot_jxc

10,更新本地所有分支

  1. git remote prune origin

11,git tag

  1. ?  jxc git:(master) git tag -a 1.3.6 -m "按数量拆单前版本备份"
  2. ?  jxc git:(master) git tag
  3. 1.3.6
  4. ?  jxc git:(master) git push origin master
  5. Everything up-to-date
  6. ?  jxc git:(master) git push origin 1.3.6
  7. Counting objects: 1, done.
  8. Writing objects: 100% (1/1), 191 bytes | 0 bytes/s, done.
  9. Total 1 (delta 0), reused 0 (delta 0)
  10. To git@git.superboss.cc:dmj/jxc.git
  11. * [new tag]         1.3.6 -> 1.3.6

删除本地tag

  1. git tag -d v1.0.0

12,子模块

  1. git submodule init fedevkm

  2. git submodule update fedevkm




Git基本使用

标签:

原文地址:http://blog.csdn.net/mergades/article/details/51355339

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!