git使用

声明:

本博客欢迎转发,但请保留原作者信息!

博客地址:http://blog.csdn.net/llg8212

内容系本人学习、研究和总结,如有雷同,不胜荣幸!

git - 简易指南

收藏:http://rogerdudler.github.io/git-guide/index.zh.html


下载代码:

gitclonehttps://github.com/openstack/nova.git

nova.git表示下载nova的代码,其它模块替换成XXX.git即可。


在分支上修改代码并提交的过程

1,创建分支:

下载代码后,可以建立分支,并在分支上修改代码。创建分支的目的是每一个分支的修改不影响其它分支(必须commit,没有commit的代码修改每个分支都可见)

命令为:git branch XXX名字可以为:bug/bug_id,便于记忆


2,切换分支git checkout XXX

3,查看git状态,包括哪些代码没上库git status

4,查看修改对比git diff xxx/yyy/zzz.py

5,将修改打上add标记git add xxx/yyy/zzz.py

6,提交代码git commit -a注:-a可以直接提交全部修改


提交代码时需要添加备注信息。例:

Remove unused imports in glance标题


There are some unused import in glance, such as 'import domain' inv2.image_data.py.


Closes-Bug:#1264245关联的bug


7,提交review到社区git review。review代码之前必须保证代码是最新的:1)通过git checkout master切换到主分支; 2)使用git pull origin master更新代码; 3)切换回自己的分支; 4)使用git rebase -i master合并主干代码; 5)如果没有冲突,则执行提交。如果有冲突,会显示有冲突的文件,解决冲突后重新git commit -a --amend 后在review。


1:对于已经提交过的,使用git commit -a –amend,这样之前的备注信息都保留。

2:如果本地没有之前提交的review分支了,可以直接从自己提交的review下载代码。在提交的patchdownload地址,复制下来执行即可。地址实例:git fetch https://review.openstack.org/openstack/novarefs/changes/41/64241/4 && git checkout FETCH_HEAD

注3:bp的提交过程也一样

注4:如果本地已经没有分支信息,可以通过git review -d 64241下载自己提交的代码。64241就是注2中的数字。

注5:建议使用root用户操作 git,非root用户可能引起一些不必要的错误。


git回退

修改的代码测试ok了,但由于一些操作 例如 reset, rebase 和 merge发现修改好的代码都没有了,真是件头疼的事。

但不用着急,git具有回退到指定版本的功能。参考文档:http://www.oschina.net/news/26241/you-can-not-change-git-history

使用git log查看日志信息,然后找到要回退的版本,使用git reset --hard 版本号即可。


git合并

git review代码是,如果出现冲突,会造成提交不成功。错误信息包含如下内容:

When you have resolved this problem run "git am --resolved".
If you would prefer to skip this patch, instead run "git am --skip".
To restore the original branch and stop patching run "git am --abort".
使用git status可以看到冲突的文件。冲突的文件必须人工干预,需要按如下步骤操作:

1,解决冲突

2,使用git add 冲突的文件

3,git am --resolved

中间如果处理乱了,用 git reset 恢复即可,所以合并 patch 在一个“干净”的分支上处理更好。


git合并主干代码

1,使用git checkout master切换到主干分支

2,使用git pull origin master更新主干最新代码

3,切换回自己工作的分支

4,使用git rebase -i master从主干合并最新的代码。

5,使用git status查看是否有冲突,如果没有冲突,就不需要做处理,如果有冲突会显示如下信息(使用git status查看会发现不在任何分支):

    # Unmerged paths:
   #   (use "git reset HEAD <file>..." to unstage)
   #   (use "git add/rm <file>..." as appropriate to mark resolution)
   #
   #    both modified:      heatclient/common/utils.py
   #    both modified:      heatclient/v1/shell.py

6,手动解决冲突,解决完后使用git add 添加冲突的文件

7,执行git rebase --continue就会切换到自己的分支了

8,再使用git commit -a --amend来提交代码就ok了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值