HappyLifeLife.com
HappyLifeLife.com
HappyLifeLife.com 登录 HappyLifeLife.com 注册 HappyLifeLife.com
爱新闻 爱生活
爱分享 爱学习
爱读书 爱探索
爱音乐 爱宇宙
爱电影 爱地球
爱阅读 爱世界
爱运动 爱科技
爱学习

<< < - > >>
GIT
GIT常用操作
www.HappyLiveLife.com 收藏 www.happylivelife.com
HappyLifeLife.com HappyLifeLife.com HappyLifeLife.com HappyLifeLife.com HappyLifeLife.com HappyLifeLife.com HappyLifeLife.com HappyLifeLife.com HappyLifeLife.com HappyLifeLife.com
编辑
git查看远程仓库地址命令git remote -v$ git log -3commit 4dc08bb8996a6ee02fAuthor: Mark Date: Wed Sep 7 08:08:53 2016 +0800git revert -n e377f60e28c8b84158git commitgit push回滚到指定的版本git reset --hard e377f60e28c8b84158删除默认登录git config --system --unset credential.helper恢复git config --global credential.helper store清除不同git clean -df清除不同并删除添加git clean -xdfA <- B <- C <- D恢复到Cgit revert hash(C) 删除到Cgit reset hash(B) --hard一、查看远程分支使用如下git命令查看所有远程分支:git branch -r1二、拉取远程分支并创建本地分支方法一使用如下命令:git checkout -b 本地分支名x origin/远程分支名x1使用该方式会在本地新建分支x,并自动切换到该本地分支x。采用此种方法建立的本地分支会和远程分支建立映射关系。方式二使用如下命令:git fetch origin 远程分支名x:本地分支名x

git导出纯净代码

git archive --format zip --output "./output.zip" master -0
git archive --format=tar --remote=$REPO $BRANCH | tar xf -
创建分支: $ git branch mybranch
切换分支: $ git checkout mybranch
创建并切换分支: $ git checkout -b mybranch
更新master主线上的东西到该分支上:$git rebase master
切换到master分支:$git checkout master
更新mybranch分支上的东西到master上:$git rebase mybranch
提交:git commit -a
对最近一次commit的进行修改:git commit -a –amend
commit之后,如果想撤销最近一次提交(即退回到上一次版本)并本地保留代码:git reset HEAD^
合并分支:(merge from) $ git checkout master
$ git merge mybranch (merge from mybranch)
删除分支: $ git branch -d mybranch
强制删除分支: $ git branch -D mybranch
列出所有分支: $ git branch
查看各个分支最后一次提交: $ git branch -v
查看哪些分支合并入当前分支: $ git branch –merged
查看哪些分支未合并入当前分支: $ git branch –no-merged
更新远程库到本地: $ git fetch origin
推送分支: $ git push origin mybranch
取远程分支合并到本地: $ git merge origin/mybranch
取远程分支并分化一个新分支: $ git checkout -b mybranch origin/mybranch
删除远程分支:$ git push origin :mybranch

Cannot delete branch 'xxx' checked out at 'xxx

git checkout master
git branch -d xxx

1. 命令详解

删除远程分支
git push --delete origin 分支名

(1) repo 常用命令详解

1、怎样在代码文件夹下所有git库都建立分支?
repo start --all <分支名>
2、怎样删除代码文件夹下所有git库的分支?
repo abandon <分支名>
*1和2其实就是相反的动作
3、怎样知道代码文件夹下都改动了那些?
repo diff
4、怎样把我的提交上传的gerrit上?
repo upload
如果出现文件就把要提交的部分前面的#去掉
5、不想同步所有代码,只想同步一部分?
repo sync <project1> <project2>……
6、repo upload以后后悔了,需要再修改?
(1)在原有分支上修改文件
(2)git commit --amend
(3)repo upload --replace <工程名>
(4)出现文件以后去掉第1行的#,中括号里面填上 change-id
[1] git 修改最近一次提交
git commit --amend
repo upload . --cbr
[2] git修改历史提交
git rebase -i HEAD~3
表示要修改当前版本的倒数第三次状态。
这个命令出来之后,会出来三行:
pick:*******
pick:*******
pick:*******
要修改哪个,就把那行的pick改成edit,然后退出。
这时通过git log你可以发现,git的最后一次提交已经变成你选的那个了,这时再使用:
git commit --amend
进行修改。
修改完了之后返回
git rebase --continue
提交
repo upload . --cbr
7、repo init的时候我没有改用户名和email,发现不对了怎么办?
git config --global user.name "<your name>" ----修改用户名
git config --global user.email "<your email>" ----修改email
git config --list ----查看修改
8、想查看以前都有哪些提交?
git log
9、想查看以前的两次提交有什么区别?
git diff <log上显示的哈希值1> <log上显示的哈希值2>
10、想查看以前代码,但是现在修改的不能动
git checkout <哈希值>
11、想回到以前,现在修改的都不要了
git reset --hard <哈希值>
12、想把自己的修改提交到本地的git库里?
git add <文件名>
git commit -m "<注释>"
13、提交以后后悔了,文件还是要修改后的,只是不想要这次提交?
git reset HEAD~1
14、提交以后发现少add了一个文件?
git add <忘记的文件>
git commit --amend
15、git add了很多文件,发现其中一个不想提交?
git reset HEAD <file>
16、只想同步代码里的一个文件?
git pull <file>
17、只删除中间的一个commit对应的修改,其他不变
git revert <对应的哈希值>
repo的用法(zz)
注:repo只是google用Python脚本写的调用git的一个脚本,主要是用来下载、管理Android项目的软件仓库。(也就是说,他是用来管理给git管理的一个个仓库的)
下载 repo 的地址: http://android.git.kernel.org/repo ,可以用以下二者之一来下载 repo
wget http://android.git.kernel.org/repo
或者
curl http://android.git.kernel.org/repo > ~/bin/repo
下载完成后须修改repo的权限: chmod a+x ~/bin/repo
用repo sync 在抓去 android source code 的时候,会经常出现一些错误导致 repo sync 中断,每次都要手动开始。 可以用如下的命令,来自动重复
$?=1;
while [ $? -ne 0 ] ;
do repo sync ;
done
获取帮助:
repo help [ command ] //显示command 的详细的帮助信息内容
示例: repo help init 来获取 repo init 的其他用法
repo init -u URL 用以在当前目录安装 repository ,会在当前目录创建一个目录 ".repo" -u 参数指定一个URL, 从这个URL 中取得repository 的 manifest 文件。
示例:repo init -u git://android.git.kernel.org/platform/manifest.git
获取的manifest文件放在.repo目录中。命名为manifest.xml。这个文件的内容其实就是所有被git管理的仓库的列表!
可以用 -m 参数来选择获取 repository 中的某一个特定的 manifest 文件,如果不具体指定,那么表示为默认的 namifest 文件 (default.xml)
repo init -u git://android.git.kernel.org/platform/manifest.git -m dalvik-plus.xml
(有诸多供我们选择的manifest文件,所有的manifest文件都放在目录.repo/manifests中,该目录本身亦被git所管理,你可以cd进去看看)
可以用 -b 参数来指定某个manifest 分支。
repo init -u git://android.git.kernel.org/platform/manifest.git -b release-1.0
你会发现.repo/manifests是个被git管理的仓库,这里放的是所有的manifest文件(*.xml),因为被git管理,固然有分支,-b可以切换到你想要的分支然后再下载相关的xml文件,当然具体下载那个xml还要看-m参数了,所以如果你仅仅指定-b而没有-m的话,就是下载-b指定分支下的default.xml文件
如果不指定-b参数,那么会默认使用master分支
4. repo sync [project-list]
下载最新本地工作文件,更新成功,这本地文件和repository 中的代码是一样的。 可以指定需要更新的project , 如果不指定任何参数,会同步整个所有的项目。
如果是第一次运行 repo sync , 则这个命令相当于 git clone ,会把 repository 中的所有内容都拷贝到本地。 如果不是第一次运行 repo sync , 则相当于 git remote update ; git rebase origin/branch . repo sync 会更新 .repo 下面的文件。 如果在merge 的过程中出现冲突, 这需要手动运行 git rebase --continue
5. repo update[ project-list ]
上传修改的代码 ,如果你本地的代码有所修改,那么在运行 repo sync 的时候,会提示你上传修改的代码,所有修改的代码分支会上传到 Gerrit (基于web 的代码review 系统), Gerrit 受到上传的代码,会转换为一个个变更,从而可以让人们来review 修改的代码。
6. repo diff [ project-list ]
显示提交的代码和当前工作目录代码之间的差异。
7. repo download target revision
下载特定的修改版本到本地, 例如: repo download pltform/frameworks/base 1241 下载修改版本为 1241 的代码
8. repo start newbranchname .
创建新的branch分支。 "." 代表当前工作的branch 分支。
9. repo prune [project list]
删除已经merge 的 project
10. repo foreach [ project-lists] -c command
对每一个 project 运行 command 命令
12. repo forall -c
这个命令会遍历所有的git仓库,并在每个仓库执行-c所指定的命令(这个被执行的命令就不限于仅仅是git命令了,而是任何被系统支持的命令,比如:ls 、 pwd 、cp 等等的 )
当我想通过这个命令遍历所有的仓库并在每个仓库执行"git checkout . "用以将每个仓库的改动都清除的时候,我这么输入命令:
repo forall -c git checkout .
我发现这样根本不行。看来repo不能遍历执行checkout这个命令。今天我终于想到了另外一个命令"git reset --hard HEAD" 哈哈
repo forall -c git git reset --hard HEAD
再说一个新发现:以前用repo forall 执行一些命令的时候,可能再遍历到某个仓库的时候出了问题,但是我却苦于不知道这个仓库到底是哪个!一直也没有解决。今天终于找到了。。。。 关键时候还是要看命令自己带的帮助手册呀。。。
repo help forall 用这个命令查看下针对forall的帮助吧。说的很清楚,repo执行的时候加上-p参数就可以在遍历到每个仓库的时候先打印出当前的pwd,然后再继续执行-c所指定的命令。举例如下:
repo forall -p -c git branch
11. repo status
显示 project 中每个仓库的状态,并打印仓库名称。

(2)Git命令详解

Git是一个分布式的版本控制工具,本篇文章从介绍Git开始,重点在于介绍Git的基本命令和使用技巧,让你尝试使用Git的同时,体验到原来一个版 本控制工具可以对开发产生如此之多的影响,文章分为两部分,第一部分介绍Git的一些常用命令,其中穿插介绍Git的基本概念和原理,第二篇重点介绍 Git的使用技巧,最后会在Git Hub上创建一个开源项目开启你的Git实战之旅
1、Git是什么
Git在Wikipedia上的定义:它是一个免费的、分布式的版本控制工具,或是一个强调了速度快的源代码管理工具。Git最初被Linus Torvalds开发出来用于管理Linux内核的开发。每一个Git的工作目录都是一个完全独立的代码库,并拥有完整的历史记录和版本追踪能力,不依赖 于网络和中心服务器。
Git的出现减轻了许多开发者和开源项目对于管理分支代码的压力,由于对分支的良好控制,更鼓励开发者对自己感兴趣的项目做出贡献。其实许多开源项目 包括Linux kernel, Samba, X.org Server, Ruby on Rails,都已经过渡到使用Git作为自己的版本控制工具。对于我们这些喜欢写代码的开发者嘛,有两点最大的好处,我们可以在任何地点(在上班的地铁 上)提交自己的代码和查看代码版本;我们可以开许许多多个分支来实践我们的想法,而合并这些分支的开销几乎可以忽略不计。
2、Git 1+1
现在进入本篇文章真正的主题,介绍一下Git的基本命令和操作,会从Git的版本库的初始化,基本操作和独有的常用命令三部分着手,让大家能够开始使用Git。
Git通常有两种方式来进行初始化:
git clone: 这是较为简单的一种初始化方式,当你已经有一个远程的Git版本库,只需要在本地克隆一份,例如'git clone git://github.com/someone/some_project.git some_project'命令就是将'git://github.com/someone/some_project.git'这个URL地址的远程版 本库完全克隆到本地some_project目录下面
git init和git remote:这种方式稍微复杂一些,当你本地创建了一个工作目录,你可以进入这个目录,使用'git init'命令进行初始化,Git以后就会对该目录下的文件进行版本控制,这时候如果你需要将它放到远程服务器上,可以在远程服务器上创建一个目录,并把 可访问的URL记录下来,此时你就可以利用'git remote add'命令来增加一个远程服务器端,例如'git remote add origin git://github.com/someone/another_project.git'这条命令就会增加URL地址为'git: //github.com/someone/another_project.git',名称为origin的远程服务器,以后提交代码的时候只需要使用 origin别名即可
3、Git的基本命令
现在我们有了本地和远程的版本库,让我们来试着用用Git的基本命令吧:
git pull:从其他的版本库(既可以是远程的也可以是本地的)将代码更新到本地,例如:'git pull origin master'就是将origin这个版本库的代码更新到本地的master主枝,该功能类似于SVN的update
git add:是将当前更改或者新增的文件加入到Git的索引中,加入到Git的索引中就表示记入了版本历史中,这也是提交之前所需要执行的一步,例如'git add app/model/user.rb'就会增加app/model/user.rb文件到Git的索引中
git rm:从当前的工作空间中和索引中删除文件,例如'git rm app/model/user.rb'
git commit:提交当前工作空间的修改内容,类似于SVN的commit命令,例如'git commit -m "story #3, add user model"',提交的时候必须用-m来输入一条提交信息
git push:将本地commit的代码更新到远程版本库中,例如'git push origin'就会将本地的代码更新到名为orgin的远程版本库中
git log:查看历史日志
git revert:还原一个版本的修改,必须提供一个具体的Git版本号,例如'git revert bbaf6fb5060b4875b18ff9ff637ce118256d6f20',Git的版本号都是生成的一个哈希值、
上面的命令几乎都是每个版本控制工具所公有的,下面就开始尝试一下Git独有的一些命令:
4、Git独有的一些命令
git branch:对分支的增、删、查等操作,例如'git branch new_branch'会从当前的工作版本创建一个叫做new_branch的新分支,'git branch -D new_branch'就会强制删除叫做new_branch的分支,'git branch'就会列出本地所有的分支
git checkout:Git的checkout有两个作用,其一是在不同的branch之间进行切换,例如 'git checkout new_branch'就会切换到new_branch的分支上去;另一个功能是还原代码的作用,例如'git checkout app/model/user.rb'就会将user.rb文件从上一个已提交的版本中更新回来,未提交的内容全部会回滚
git rebase:rebase命令执行后,实际上是将分支点从C移到了G,这样分支也就具有了从C到G的功能
git reset:将当前的工作目录完全回滚到指定的版本号,假设我们有A-G五次提交的版本,其中C 的版本号是 bbaf6fb5060b4875b18ff9ff637ce118256d6f20,我们执行了'git reset bbaf6fb5060b4875b18ff9ff637ce118256d6f20'那么结果就只剩下了A-C三个提交的版本
git stash:将当前未提交的工作存入Git工作栈中,时机成熟的时候再应用回来,这里暂时提一下这个命令的用法,后面在技巧篇会重点讲解
git config:利用这个命令可以新增、更改Git的各种设置,例如'git config branch.master.remote origin'就将master的远程版本库设置为别名叫做origin版本库,后面在技巧篇会利用这个命令个性化设置你的Git,为你打造独一无二的 Git
git tag:可以将某个具体的版本打上一个标签,这样你就不需要记忆复杂的版本号哈希值了,例如你可以使用 'git tag revert_version bbaf6fb5060b4875b18ff9ff637ce118256d6f20'来标记这个被你还原的版本,那么以后你想查看该版本时,就可以使用 revert_version标签名,而不是哈希值了
Git之所以能够提供方便的本地分支等特性,是与它的文件存储机制有关的。Git存储版本控制信息时使用它自己定义的一套文件系统存储机制,在代码根目录下有一个.git文件夹,会有如下这样的目录结构:
有几个比较重要的文件和目录需要解释一下:HEAD文件存放根节点的信息,其实目录结构就表示一个树型结构,Git采用这种树形结构来存储版本信息, 那么HEAD就表示根;refs目录存储了你在当前版本控制目录下的各种不同引用(引用指的是你本地和远程所用到的各个树分支的信息),它有heads、 remotes、stash、tags四个子目录,分别存储对不同的根、远程版本库、Git栈和标签的四种引用,你可以通过命令'git show-ref'更清晰地查看引用信息;logs目录根据不同的引用存储了日志信息。因此,Git只需要代码根目录下的这一个.git目录就可以记录完 整的版本控制信息,而不是像SVN那样根目录和子目录下都有.svn目录。那么下面就来看一下Git与SVN的区别吧
5、Git与SVN的不同
SVN(Subversion)是当前使用最多的版本控制工具。与它相比较,Git最大的优势在于两点:易于本地增加分支和分布式的特性。
对于易于本地增加分支,Git本地和服务器端结构都很灵活,所有版本都存储在一个目录中,你只需要进行分支的切换即可达到在某个分支工作的效果。 而SVN则完全不同,如果你需要在本地试验一些自己的代码,只能本地维护多个不同的拷贝,每个拷贝对应一个SVN服务器地址。举一个实际的例子,以前我所 在的小组使用SVN作为版本控制工具,当我正在试图增强一个模块,工作做到一半,由于会改变原模块的行为导致代码服务器上许多测试的失败,所以并没有提交 代码。这时候上级对我说,现在有一个很紧急的Bug需要处理, 必须在两个小时内完成。我只好将本地的所有修改diff,并输出成为一个patch文件,然后回滚有关当前任务的所有代码,再开始修改Bug的任务,等到 修改好后,在将patch应用回来。前前后后要完成多个繁琐的步骤,这还不计中间代码发生冲突所要进行的工作量。可是如果使用Git, 我们只需要开一个分支或者转回到主分支上,就可以随时开始Bug修改的任务,完成之后,只要切换到原来的分支就可以优雅的继续以前的任务。只要你愿意,每 一个新的任务都可以开一个分支,完成后,再将它合并到主分支上,轻松而优雅。
分布式对于Git而言,你可以本地提交代码,Git有利于将一个大任务分解,进行本地的多次提交,而SVN只能在本地进行大量的一 次性更改,导致将来合并到主干上造成巨大的风险。Git的代码日志是在本地的,可以随时查看。SVN的日志在服务器上的,每次查看日志需要先从服务器上下 载下来。我工作的小组,代码服务器在美国,每次查看小组几年前所做的工作时,日志下载就需要十分钟,这不能不说是一个痛苦。后来我们迁移到Git上,利用 Git日志在本地的特性,我用Ruby编写了一个Rake脚本,可以查看某个具体任务的所有代码历史,每次只需要几秒钟,大大方便我的工作。当然分布式并 不是说用了Git就不需要一个代码中心服务器,如果你工作在一个团队里,还是需要一个服务器来保存所有的代码的。
--------------------------------------------------------------------------------

2. 常见问题

(1) No such file or directory

使用repo命令时,出现
repo init -u ssh://url/manifest.git --repo-url=ssh://url/git-repo.git
Traceback (most recent call last):
File "/home/user/work/.repo/repo/main.py", line 414, in <module>
_Main(sys.argv[1:])
File "/home/user/work/.repo/repo/main.py", line 379, in _Main
_CheckWrapperVersion(opt.wrapper_version, opt.wrapper_path)
File "/home/user/work/.repo/repo/main.py", line 192, in _CheckWrapperVersion
exp = _CurrentWrapperVersion()
File "/home/user/work/.repo/repo/main.py", line 182, in _CurrentWrapperVersion
return WrapperModule().VERSION
File "/home/user/work/.repo/repo/main.py", line 178, in WrapperModule
_wrapper_module = imp.load_source('wrapper', _MyWrapperPath())
IOError: [Errno 2] No such file or directory
删除 当前目录(上面是/home/user/work/)下的.repo文件夹即可
如出现 git aborting commit due to empty commit message
原因是:在git 提交时没有写注示文字。原因引发条件:$git commit ,解决方法:
$git commit -m "hello,i will commit"
如采用编辑器,则要加上开始不能带"#"的语句,否则也会被认为是空

(2)Git代码冲突常见解决方法

git服务器merge工作
repo sync时,如果系统中有一些配置文件在服务器上做了配置修改,然后后续开发又新添加一些配置项的时候,在发布这个配置文件的时候,会发生代码冲突:
error: Your local changes to the following files would be overwritten by merge:
protected/config/main.php
Please, commit your changes or stash them before you can merge.
如果希望用代码库中的文件完全覆盖本地工作版本. 方法如下:
git reset --hard
git pull
其中git reset是针对版本,如果想针对文件回退本地修改,使用
git checkout HEAD file/to/restore
如果希望保留生产服务器上所做的改动,仅仅并入新配置项, 处理方法如下:
git stash
git pull
git stash pop
然后可以使用git diff -w +文件名 来确认代码自动合并的情况.

(3) 关于从A代码里面打包,放到B代码的问题

有两种方法:
1)在A代码里面,$git diff <起始哈希值> <终点哈希值> > A.patch
在B代码里面,$git apply A.patch
有冲突解决冲突。
打开对应修改的文件发现就已经被修改了。
--这个方法的缺点是对应A代码的commit是不会加到B代码上的。
2)在A代码里面,$git format-patch -<x> <分支名> -o <路径>
-<x>,x填一个数字,表示从倒数第几个commit开始
运行完成就能在<路径>下看见<x>个patch,对应一个commit一个patch 在B代码里面,$git am <路径>/*.patch,就把所有的patch加到B代码里面
了。 --这个方法可以把A代码里面对应的commit都加到B代码上。

git pull更新错误解决办法

Your local changes to the following files would be overwritten by merge
error: Your local changes to the following files would be overwritten by merge:
protected/config/main.php
Please, commit your changes or stash them before you can merge.
参考http://blog.csdn.net/zwhfyy/article/details/8625228
如果希望保留生产服务器上所做的改动,仅仅并入新配置项, 处理方法如下:
git stash
git pull
git stash pop
然后可以使用git diff -w +文件名 来确认代码自动合并的情况.
反过来,如果希望用代码库中的文件完全覆盖本地工作版本. 方法如下:
git reset --hard
git pull
其中git reset是针对版本,如果想针对文件回退本地修改,使用
untracked working tree file
参考:http://blog.csdn.net/sheismylife/article/details/7204345
编写脚本自动编译并部署时的注意
如果想在C2上编写脚本自动从S1上获取最新代码时,要注意:
1.首先之前产生的公钥不能设密码,否则每次git pull的时候都会要求输入密码。
2.不要将项目中的编译中间文件提交到S1上,比如CMake工程里面的build目录的文件,Maven工程里面的target目录里面的文件。否则下次在C2等客户端用git pull会报类似于这样的错误:
error: Untracked working tree file 'public/images/icon.gif' would be overwritten by merge.
需要执行下面的命令才能修复:
git reset --hard HEAD
git clean -f -d
git pull

git push ERROR: missing Change-Id in commit message footer

上传代码时候报告错误:
$ git push origin HEAD:refs/for/branch*
Counting objects: 7, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 350.91 KiB | 0 bytes/s, done.
Total 4 (delta 1), reused 0 (delta 0)
remote: Resolving deltas: 100% (1/1)
remote: Processing changes: refs: 1, done
remote: ERROR: missing Change-Id in commit message footer
remote: Suggestion for commit message:
remote: [*][*][*][NA]fix bug[*5]
remote:
remote: Change-Id: I53***80
remote:
remote: Hint: To automatically insert Change-Id, install the hook:
remote: gitdir=$(git rev-parse --git-dir); scp -p -P port name@hostIp:hooks/commit-msg ${gitdir}/hooks/
remote:
remote:
To ssh://17*.*.1*.*/a*x/ve*r/a*ilt.git
! [remote rejected] HEAD -> refs/for/branch* (missing Change-Id in commit message footer)
error: failed to push some refs to 'ssh://1*.2*.*.7*/*/v*or/a*ilt.git'
解决办法,直接在命令行加入报错的绿色部分,再执行以下步骤:
$gitdir=$(git rev-parse --git-dir); scp -p -P port name@hostIp:hooks/commit-msg ${gitdir}/hooks/
commit-msg
$ git commit --amend
[*][*][*][NA]fix bug[*5]
1 file changed, 0 insertions(+), 0 deletions(-)
$git log
如仍不行,则可执行以下步骤:
0.'git add .'
1.save your HEAD commit change-id got from 'git log',it will be used later.
2.copy the HEAD commit change-id from Gerrit website.
3.'git reset HEAD'
4.'git commit --amend' and copy the change-id from **Gerrit website** to the commit message in the last paragraph(replace previous change-id)
5.'git push *' you can push successfully now but can not find the HEAD commit from **git log** on Gerrit website too
6.'git reset HEAD'
7.'git commit --amend' and copy the change-id from **git log**(we saved in step 1) to the commit message in the last paragraph(replace previous change-id)
8.'git push *' you can find the HEAD commit from **git log** on Gerrit website,they have the same change-id
9.done
* 声明:本文由其作者或媒体撰写,观点仅代表其本身,不代表本站立场。
编辑
HappyLifeLife.com HappyLifeLife.com HappyLifeLife.com HappyLifeLife.com HappyLifeLife.com HappyLifeLife.com HappyLifeLife.com HappyLifeLife.com HappyLifeLife.com HappyLifeLife.com
 
<< < - > >>
[GIT][*] [HIS][*] [JS][*] [Android][*] [DB][*] [Web][*] [JAVA][*] [C][*] [0][*] [TL][*] [O][*] [3D][*] [PAS][*] [IOS][*] [算法][*] [地球][*] [学习方法][*] [探索][*] [宇宙][*] [Linux][*] [阅读秘诀][*] [考试技巧][*] [...]
天天快乐生活[HappyLifeLife.com]
欢迎来访 快乐空间 热点新闻 我的分享 读书频道 七彩生活 精彩世界 快乐搜索 
ICP备15040518 | ©1999-2018 HappyLiveLife.com 版权所有 | 服务 | 爱新闻 | 爱分享 | 在线搜索 | 招贤纳士
欢迎来访 快乐空间 热点新闻 我的分享 读书频道 七彩生活 精彩世界 快乐搜索 
ICP备15040518 | ©1999-2018 HappyLiveLife.com 版权所有 | 服务 | 爱新闻 | 爱分享 | 在线搜索 | 招贤纳士