git使用方法备忘
2014-04-12 23:36
260 查看
git使用方法备忘
-v0.1 *** 2014.4.11
最近在使用git管理代码,经常用到一些命令,现在总结在下面。本文不是初级的介绍
文章,并假设读者已经有一定使用git的基础
-v0.2 2014.4.17 增加git push, git log, git rebase原理
1. 已经知道了可以下载代码的git服务器的地址,比如:git://git.linaro.org/kernel.git
可以使用:
git clone git://git.linaro.org/kernel.git
下载代码
要是你的本地电脑上已经有了之前clone的一个kernel的git仓库,可以使用:
git clone git://git.linaro.org/kernel.git --reference /path/to/kernel.git
提高下载的速度,新的下载的git库将会重用以前已有的git库
下载好git库后,可以使用:
git branch -r
显示所用的远程分支, 然后用:
git checkout branchname
提取出需要的分支,然后用;
git branch
就可以看到上面提出来的分支的名字了
2. 显示远程仓库的网址和名字:
git remote -v
修改远程仓库,发现远程仓库的地址错了,导致一直下载不下来代码,需要添加正确的地址:
git remote add hilt ssh://git.linaro.org/kernel.git
其中hilt是这个远程仓库的名字
git remote rm origin
其中orgin是原来错误远程仓库的名字,之后把远程仓库的名字从hilt改成origin:
git remote rename hilt origin
3. 在开发的时候会出现很多中间版本,这些版本做的改动对别人是无意义的, 比如有
version_1--->version_2--->version_3, 怎么把这三个版本合并成一个版本(一次提交):
git rebase -i HEAD~3
其中3表示把最近的3次提交合并成一次提交
其实git rebase 是改变基础的操作, 比如有以下的提交:
A--->B--->C--->D--->E
\--->F--->G
现在F--G分支的基础是B,要把F--G的基础变成E,好像F--G从E生长出来, 可以使用:
git rebase branch_A_E
上面的操作需要切换到F--G分支去做,操作的结果是:
A--->B--->C--->D--->E--->F'--->E'
如果commit的log message写的不好,也可以用:
git commit --amend
重写commit的log message
4. 代码改好了,需要***patch,可以使用:
git format-patch -s -1
其中s表示patch中会加上签名项, 1表示对最近一次提交生成patch. 如果把1变成2,那么
会生成两个patch, 以version_1--->version_2--->version_3为例,这两个patch是
version_3对version_2的patch、version_2对version_1的patch
5. 改好代码准备上传到服务器上,可以使用:
git push origin your_branch_name
来上传代码,其中origin是远程仓库的名字,your_branch_name是你本地分支的名字
6. 想要快速的看下历次提交的改动,可以使用:
git log --stat
在输出的log message中会显示都改动了哪些文件。想看每次提交的具体改动,可以使用:
git log -p
-v0.1 *** 2014.4.11
最近在使用git管理代码,经常用到一些命令,现在总结在下面。本文不是初级的介绍
文章,并假设读者已经有一定使用git的基础
-v0.2 2014.4.17 增加git push, git log, git rebase原理
1. 已经知道了可以下载代码的git服务器的地址,比如:git://git.linaro.org/kernel.git
可以使用:
git clone git://git.linaro.org/kernel.git
下载代码
要是你的本地电脑上已经有了之前clone的一个kernel的git仓库,可以使用:
git clone git://git.linaro.org/kernel.git --reference /path/to/kernel.git
提高下载的速度,新的下载的git库将会重用以前已有的git库
下载好git库后,可以使用:
git branch -r
显示所用的远程分支, 然后用:
git checkout branchname
提取出需要的分支,然后用;
git branch
就可以看到上面提出来的分支的名字了
2. 显示远程仓库的网址和名字:
git remote -v
修改远程仓库,发现远程仓库的地址错了,导致一直下载不下来代码,需要添加正确的地址:
git remote add hilt ssh://git.linaro.org/kernel.git
其中hilt是这个远程仓库的名字
git remote rm origin
其中orgin是原来错误远程仓库的名字,之后把远程仓库的名字从hilt改成origin:
git remote rename hilt origin
3. 在开发的时候会出现很多中间版本,这些版本做的改动对别人是无意义的, 比如有
version_1--->version_2--->version_3, 怎么把这三个版本合并成一个版本(一次提交):
git rebase -i HEAD~3
其中3表示把最近的3次提交合并成一次提交
其实git rebase 是改变基础的操作, 比如有以下的提交:
A--->B--->C--->D--->E
\--->F--->G
现在F--G分支的基础是B,要把F--G的基础变成E,好像F--G从E生长出来, 可以使用:
git rebase branch_A_E
上面的操作需要切换到F--G分支去做,操作的结果是:
A--->B--->C--->D--->E--->F'--->E'
如果commit的log message写的不好,也可以用:
git commit --amend
重写commit的log message
4. 代码改好了,需要***patch,可以使用:
git format-patch -s -1
其中s表示patch中会加上签名项, 1表示对最近一次提交生成patch. 如果把1变成2,那么
会生成两个patch, 以version_1--->version_2--->version_3为例,这两个patch是
version_3对version_2的patch、version_2对version_1的patch
5. 改好代码准备上传到服务器上,可以使用:
git push origin your_branch_name
来上传代码,其中origin是远程仓库的名字,your_branch_name是你本地分支的名字
6. 想要快速的看下历次提交的改动,可以使用:
git log --stat
在输出的log message中会显示都改动了哪些文件。想看每次提交的具体改动,可以使用:
git log -p
相关文章推荐
- git的基本使用方法(备忘)
- git使用问题-解决方法 备忘
- Git 使用备忘
- Git与TortoiseGit使用方法
- eclipse 使用git碰到网络超时连接不了等问题的解决方法
- 【Git】与【Github】的初级使用方法
- eclipse IDE使用git方法简单介绍
- Git使用基本方法(从远程服务器获取分支,提交修改)
- [备忘]ASP.NET MVC中RouteData.GetRequiredString("key")方法和RouteData.DataTokens["key"]方法使用上的区别
- XML和XPath使用方法备忘(转载)
- Linux下Git和GitHub使用方法
- cocos2dx 帧动画使用方法备忘
- Android Studio下Git的两种使用方法(超详细)
- GIT和repo使用方法,下载android-2.6.29内核
- Git基本使用方法
- GIT和repo使用方法,下载android-2.6.29内核
- GitHack使用方法
- IRSplit使用方法备忘
- google git的使用方法
- Git Bash+EGit在项目中配合使用最常用方法总结(根据场景使用)