git checkout怎样快速git 切换分支命令回上一个使用过的分支

git基本使用方法_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
git基本使用方法
上传于||暂无简介
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
下载文档到电脑,查找使用更方便
还剩7页未读,继续阅读
你可能喜欢新手园地& & & 硬件问题Linux系统管理Linux网络问题Linux环境编程Linux桌面系统国产LinuxBSD& & & BSD文档中心AIX& & & 新手入门& & & AIX文档中心& & & 资源下载& & & Power高级应用& & & IBM存储AS400Solaris& & & Solaris文档中心HP-UX& & & HP文档中心SCO UNIX& & & SCO文档中心互操作专区IRIXTru64 UNIXMac OS X门户网站运维集群和高可用服务器应用监控和防护虚拟化技术架构设计行业应用和管理服务器及硬件技术& & & 服务器资源下载云计算& & & 云计算文档中心& & & 云计算业界& & & 云计算资源下载存储备份& & & 存储文档中心& & & 存储业界& & & 存储资源下载& & & Symantec技术交流区安全技术网络技术& & & 网络技术文档中心C/C++& & & GUI编程& & & Functional编程内核源码& & & 内核问题移动开发& & & 移动开发技术资料ShellPerlJava& & & Java文档中心PHP& & & php文档中心Python& & & Python文档中心RubyCPU与编译器嵌入式开发驱动开发Web开发VoIP开发技术MySQL& & & MySQL文档中心SybaseOraclePostgreSQLDB2Informix数据仓库与数据挖掘NoSQL技术IT业界新闻与评论IT职业生涯& & & 猎头招聘IT图书与评论& & & CU技术图书大系& & & Linux书友会二手交易下载共享Linux文档专区IT培训与认证& & & 培训交流& & & 认证培训清茶斋投资理财运动地带快乐数码摄影& & & 摄影器材& & & 摄影比赛专区IT爱车族旅游天下站务交流版主会议室博客SNS站务交流区CU活动专区& & & Power活动专区& & & 拍卖交流区频道交流区
UID空间积分0 积分294阅读权限20帖子精华可用积分294 信誉积分295 专家积分0 在线时间513 小时注册时间最后登录
稍有积蓄, 积分 294, 距离下一级还需 206 积分
帖子主题精华可用积分294 信誉积分295 专家积分0 在线时间513 小时注册时间最后登录
论坛徽章:0
在svn中,可以获取到指定的版本。
但是使用git,如kernel本地仓库中有多个版本,特别是各个版本都会建立tag。
我想如svn中那样,将工作区切换到某个指定版本,用完后再切换回来,该如何操作呢?
&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp
To be 千里马!
UID空间积分3 积分7253阅读权限100帖子精华可用积分7253 信誉积分3133 专家积分79 在线时间8317 小时注册时间最后登录
帖子主题精华可用积分7253 信誉积分3133 专家积分79 在线时间8317 小时注册时间最后登录
认证徽章论坛徽章:28
git checkout 就可以吧
----------
欢迎光临Godbach的博客:
明犯我强汉天威者,穷搜天下,万里追杀,覆其巢,断其苗裔,戮其身,追其魂,屠其魄,虽远必诛!
UID空间积分0 积分8119阅读权限100帖子精华可用积分8119 信誉积分1984 专家积分30 在线时间2553 小时注册时间最后登录
帖子主题精华可用积分8119 信誉积分1984 专家积分30 在线时间2553 小时注册时间最后登录
认证徽章论坛徽章:6
svn和git的命令集基本上相同的。
戒骄戒躁,空杯心态
UID空间积分0 积分4阅读权限10帖子精华可用积分4 信誉积分77 专家积分0 在线时间23 小时注册时间最后登录
白手起家, 积分 4, 距离下一级还需 196 积分
帖子主题精华可用积分4 信誉积分77 专家积分0 在线时间23 小时注册时间最后登录
论坛徽章:0
不知道你的多个版本是什么意思,不过一般的做法是一个git版本库中可以有多个分支(这里分支应该可以对应的各个版本吧),在操作时可以用“git checkout 分支名称”,在各个分支间切换就能实现了。不过如果你在一个分支上已经修改而且未保存时注意使用git stash来保存该分支现场再切换到你要操作的下一个分支上。
UID空间积分0 积分294阅读权限20帖子精华可用积分294 信誉积分295 专家积分0 在线时间513 小时注册时间最后登录
稍有积蓄, 积分 294, 距离下一级还需 206 积分
帖子主题精华可用积分294 信誉积分295 专家积分0 在线时间513 小时注册时间最后登录
论坛徽章:0
关键是没有这个分支啊
UID空间积分0 积分294阅读权限20帖子精华可用积分294 信誉积分295 专家积分0 在线时间513 小时注册时间最后登录
稍有积蓄, 积分 294, 距离下一级还需 206 积分
帖子主题精华可用积分294 信誉积分295 专家积分0 在线时间513 小时注册时间最后登录
论坛徽章:0
感觉还是有点差别的啊
svn中检出命令svn co -r时可以指定版本,但是git中对应的命令git pull/fetch,并不具备这个功能呀。
UID空间积分0 积分294阅读权限20帖子精华可用积分294 信誉积分295 专家积分0 在线时间513 小时注册时间最后登录
稍有积蓄, 积分 294, 距离下一级还需 206 积分
帖子主题精华可用积分294 信誉积分295 专家积分0 在线时间513 小时注册时间最后登录
论坛徽章:0
我想要表达的是这样的:
[lofeng410@localhost kernel]$ git branch
该git库本地只有一个分支,该分支中在重要的提交时打了tag。具体为:
我想要的操作时能在这些tag对应版本间切换,如将当前的工作区切换到v3.6.1,然后操作完成后,再切换到v3.6.5,或者其他版本。
UID空间积分0 积分247阅读权限20帖子精华可用积分247 信誉积分580 专家积分0 在线时间748 小时注册时间最后登录
稍有积蓄, 积分 247, 距离下一级还需 253 积分
帖子主题精华可用积分247 信誉积分580 专家积分0 在线时间748 小时注册时间最后登录
论坛徽章:0
lofeng410 发表于
回复 4# gao198732
我想要表达的是这样的:
git一般用分支维护,你 git branch -r 试试?如果有就可以git co了。
(FUCK GFW)
UID空间积分0 积分3567阅读权限50帖子精华可用积分3567 信誉积分1824 专家积分0 在线时间6412 小时注册时间最后登录
小富即安, 积分 3567, 距离下一级还需 1433 积分
帖子主题精华可用积分3567 信誉积分1824 专家积分0 在线时间6412 小时注册时间最后登录
论坛徽章:2
git checkout &commit&
这样是个anonymous branch
git checkout &commit & -b&&tmp1
这样就建立了一个叫作tmp1的branch
以互联网为沈浊,不可与庄语。
以原创为真,以回复为曼衍,以转贴为广。
以浮词谬说为利矛,以语无伦次为坚盾,纵横驰骋于Forums/News Groups/Mailing Lists之上。
UID空间积分0 积分8312阅读权限100帖子精华可用积分8312 信誉积分2907 专家积分35 在线时间5059 小时注册时间最后登录
帖子主题精华可用积分8312 信誉积分2907 专家积分35 在线时间5059 小时注册时间最后登录
认证徽章论坛徽章:4
楼上的commit也可以是楼主tag里面的那个版本
比如v2.6.10
招聘大量多媒体开发,网络程序开发人员,有意私信使用git&新建分支以及管理分支
使用git 新建分支以及管理分支
Created Saturday 24 November 2012
&在你的github分支上, 你需要保持你的主分支干净,
我说的干净就是没有任何改变,那么你可以在任何时候从你的主分支修建一个分支。每次,
你想提交一个补丁或者一个新特性时,你需要为它新建一个分支,而这个分支无论如何都会从你的主分支复制过来。
&当你要在一个分支做拉请求时,
你也能够继续在其他分支上工作,而且也能够在其它分支上做拉请求。
在你新建一个新分支从主分支上拉下来所有改变之前,你的主分支需要确保是最新的。
&在本地电脑新建一个分支: git branch
&新分支名字&
&将新分支发布在github上: git push origin
&新分支名字& [*如果边看边做,会出错,请往下看]
&切换到你的新分支: git checkout
&新分支名字& [* 事实上切换到其它分支都是这个命令]
&当你想要在你的分支上提交内容,请确保是在你的那个分支上。[*
我的一篇博文上写到了在终端上显示当前分支以及显示当前分支是否做过修改即该分支是否干净]
&查看所有已存在的分支,你可以使用: git
它就会有如下显示:
approval_messages
&master_clean
[* '·'代表了你现在所在分支]
&为你的分支加入一个新的远程端: git remote add
&远程端名字& &地址&
[* 前文提到出错的地方就是缺少了这一步,如果你在github申请了帐号,可以新建一个仓库,这时就会有一个地址[],
远程段名字可以随便取,如上文的origin]
&通过提交将所有修改提交到你的分支上: git push origin
&远程端分支& [*
原文有点问题,远程端分支一般是与本地分支是对应的,当然你也可以在本地一个分支提交到远程端分支的另一个分支如: git push
origin master 提交到远程端的主分支上]
&在本地删除一个分支: git branch -d
&本地分支&
在github远程端删除一个分支: git push origin
:&远程端分支&
唯一不同的就是冒号代表了删除
&如果你想要改变默认分支,
在github上是很容易的,在你的分支上到Admin页面,在下拉菜单里选择你想要设置为默认分支的那个分支。
1. 本文原文地址:
2. [* ]: 是我的疯人疯语,可以略过。
3. 黑体加粗:代表了命令
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。Git 管理分支
Git 管理分支
Windows10用户联盟QQ群:
分支操作可以创造另一条线的发展。对fork过程分为两个不同的方向发展,我们可以使用此操作。例如,我们发布了6.0版本的产品,我们可能要创建一个分支,使7.0功能的发展可以保持独立从6.0 bug修复。
使用Git分支&branch name&&命令创建新的分支。从现有的,我们可以创建一个新的分支。我们可以使用特定的提交或标签作为一个起点。如果没有提供任何具体的提交ID,然后分支将HEAD&创建作为一个起点。
[jerry@CentOS src]$ git branch new_branch
[jerry@CentOS src]$ git branch
new_branch
创建新的分支,Tom用&git branch命令列出可用的分支。 Git会显示星号标记之前,当前检出的分支。&
下面是创建分支操作的图形表示
Jerry 使用git checkout命令到分支之间切换。
[jerry@CentOS src]$ git checkout new_branch
Switched to branch 'new_branch'
[jerry@CentOS src]$ git branch
* new_branch
创建和切换分支的快捷方式
在上面的例子中,我们使用了两个命令来创建和切换分支。 Git提供checkout命令 -b选项,此操作将创建新的分支,并立即切换到新的分支。
[jerry@CentOS src]$ git checkout -b test_branch
Switched to a new branch 'test_branch'
[jerry@CentOS src]$ git branch
new_branch
* test_branch
一个分支可以用git branch命令的-D选项被删除。但在此之前,删除现有的分支切换到其他分支。
Jerry&当前在test_branch 想要删除该分支。于是,他分支和删除分支切换,如下图所示。
[jerry@CentOS src]$ git branch
new_branch
* test_branch
[jerry@CentOS src]$ git checkout master
Switched to branch 'master'
[jerry@CentOS src]$ git branch -D test_branch
Deleted branch test_branch (was 5776472).
现在Git会显示只有两个分支。
[jerry@CentOS src]$ git branch
new_branch
重命名分支
Jerry&决定添加宽字符支持他的字符串操作项目。他已经创建了一个新的分支,但分支名称是不恰当的。于是,他通过使用-m选项,其次是旧分支名称和新分支名称变更分支名称。
[jerry@CentOS src]$ git branch
new_branch
[jerry@CentOS src]$ git branch -m new_branch wchar_support
现在git branch命令将显示新分支名称。
[jerry@CentOS src]$ git branch
wchar_support
合并两个分支
Jerry 实现函数返回字符串的长度为宽字符串。新代码将看起来像这样
[jerry@CentOS src]$ git branch
* wchar_support
[jerry@CentOS src]$ pwd
/home/jerry/jerry_repo/project/src
[jerry@CentOS src]$ git diff
上面的命令会产生以下结果。
t a/src/string_operations.c b/src/string_operations.c
index 8ab7f42..8fb4b00 100644
--- a/src/string_operations.c
+++ b/src/string_operations.c
@@ -1,4 +1,14 @@
#include &stdio.h&
+#include &wchar.h&
+size_t w_strlen(const wchar_t *s)
const wchar_t *p =
while (*p)
+ return (p - s);
测试后,他提交他的变化,并推到新的分支。
[jerry@CentOS src]$ git status -s
M string_operations.c
?? string_operations
[jerry@CentOS src]$ git add string_operations.c
[jerry@CentOS src]$ git commit -m 'Added w_strlen function to return string lenght of wchar_t
string'
[wchar_support 64192f9] Added w_strlen function to return string lenght of wchar_t string
1 files changed, 10 insertions(+), 0 deletions(-)
注意杰里推动这些变化的新分支,这就是为什么他用wchar_support分支的名称,而不是master分支。
[jerry@CentOS src]$ git push origin wchar_support &&&&&&&&&&&&&& Observer branch_name
上面的命令会产生以下结果。
Counting objects: 7, done.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 507 bytes, done.
Total 4 (delta 1), reused 0 (delta 0)
To gituser@:project.git
* [new branch]
wchar_support -& wchar_support
经过分支提交的变化,新分支会这个样子。
Tom 好奇Jerry 在做什么在他的私人分支,这就是为什么他检查日志从wchar_support 分支。
[tom@CentOS src]$ pwd
/home/tom/top_repo/project/src
[tom@CentOS src]$ git log origin/wchar_support -2
上面的命令会产生以下结果。
commit cc2bcdf3bf946dd33ece63b74184a3
Author: Jerry Mouse &&
Date: Wed Sep 11 16:10:06
Added w_strlen function to return string lenght of wchar_t string
commit ed44fe2ae8a4f12ed71a1
Author: Tom Cat &&
Date: Wed Sep 11 10:21:20
Removed executable binary
通过查看提交的信息,Tom&意识到Jerry&实现宽字符strlen 函数,他希望同样的功能集成到主分支。而不是重新实现他的分支合并到主分支,他决定采用杰里的代码。
[tom@CentOS project]$ git branch
[tom@CentOS project]$ pwd
/home/tom/top_repo/project
[tom@CentOS project]$ git merge origin/wchar_support
Updating 192f9
Fast-forward
src/string_operations.c | 10 ++++++++++
1 files changed, 10 insertions(+), 0 deletions(-)
合并操作后的主分支会这个样子。
现在wchar_support分支合并到主分支中我们可以验证它的查看提交信息,通过查看修改成string_operation.c文件。
[tom@CentOS project]$ cd src/
[tom@CentOS src]$ git log -1
commit cc2bcdf3bf946dd33ece63b74184a3
Author: Jerry Mouse
Date: Wed Sep 11 16:10:06
Added w_strlen function to return string lenght of wchar_t string
[tom@CentOS src]$ head -12 string_operations.c
上面的命令会产生以下结果。
#include &stdio.h&
#include &wchar.h&
size_t w_strlen(const wchar_t *s)
const wchar_t *p = s;
while (*p)
return (p - s);
经过测试,他把他的代码更改到主分支。
[tom@CentOS src]$ git push origin master
Total 0 (delta 0), reused 0 (delta 0)
To gituser@:project.git
192f9 master && master
Git 的 rebase命令的一个分支合并的命令,但不同的是,它修改提交的顺序。
Git merge命令,试图把从其他分支提交当前的本地分支的HEAD上。例如 本地的分支已经提交A-& B-& C-& D和合并分支已提交A-& B-& X& Y,则Git合并将当前转换像这样的本地分行A-& B-& C-& D-& X-& Y
Git 的rebase命令试图找到当前的本地分支和合并分支之间的共同祖先。然后把修改提交的顺序,在当前的本地分支提交中的本地分支。例如,如果当地的分支已提交A-& B-& C-& D和合并分支已提交A-& B-& X-& Y,Git衍合的类似A-& B转换成当前的本地分支A&&B&&X&&Y&&C&&D
当多个开发人员在一个单一的远程资源库的工作,你不能在远程仓库提交修改订单。在这种情况下,可以使用变基操作把本地提交的远程仓库之上的提交,可以推送这些变化。
标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

我要回帖

更多关于 git checkout切换分支 的文章

 

随机推荐