A. git如何从远程分支获取最新版本到本地
一、查看远程分支
使用如下Git命令查看所有远程分支:
git branch -r11
二、拉取远程分支并创建本地分支
方法一
使用如下命令:
git checkout -b 本地分支名x origin/远程分支名x11
使用该方式会在本地新建分支x,并自动切换到该本地分支x。
方式二
使用如下命令:
git fetch origin 远程分支名x:本地分支名x11
使用该方式会在本地新建分支x,但是不会自动切换到该本地分支x,需要手动checkout。
转自:http://blog.csdn.NET/tterminator/article/details/52225720
B. 使用Git的时候我们比较本地分支版本和远程版本的不同之处使用什么指令
假设远端库名是 origin,你要比较的本地分支为 test,远端分支就是 xxx
C. git 获取历史版本的几种方式
我们简单的描述一个例子:
a)初始化操作
有两个文件file1.txt和file2.txt
1, 初始化的时候就有这两个文件
操作:
git init
git status
git add .
git commit -m “init version”
2, 在master分支上修改了file1.txt,并提交
操作:
(修改file1.txt)
git add file1.txt
git commit -m “change file1”
3, 然后新建分支banana,并切换到banana分支上
操作:
git branch banana
git checkout banana
4, 修改file1.txt和file2.txt,并提交。
操作:
(修改file1.txt和file2.txt)
git add file1.txt file2.txt
git commit -m “change by banana”
这个时候,我们可以输入 gitk,查看一下当前的版本情况。如下图:git-001
5, 然后,切换到master分支上,修改file2.txt,并提交。
操作:
git checkout master
(修改file2.txt)
git add file2.txt
git commit -m “change by master”
输入gitk,查看当前版本情况,如下图:git-002
b)发现问题需要查看历史版本
我们现在发现当前的版本有点问题,还不能提交到版本库。
1,我们需要从git commit中返回.
则输入:
git reset --soft HEAD^
解释一下,HEAD是当前分支的最新版本。^表示父节点。当前节点的父节点,就是上一次提交的版本。也就是标记为“change file1”的版本。
问为什么不是”change by banana”这个版本呢?不同的分支哦。”change by banana”是banana分支的最新代码,和master分支不同的。
这个时候输入
git status
看看,是不是显示file2.txt修改了没有提交呢。
2,我们需要从git add中返回
再仔细查看之后,我们发现file2.txt真的写错了,需要返回到git add之前的状态。
输入:
git reset -q file2.txt
这个时候,file2.txt就回到了解放前了。用git status查看一下,file2.txt是”change not staged for commit”状态。
3,回到没有做过的情况
我们最终确定,最后一次修改的file2.txt是无用的代码,我们需要废弃掉。
注意,这个操作不能恢复的哦。
git reset --hard
这个命令,不能指定具体的文件。是把当前的修改全部清除,恢复到最后一次提交的版本。
这个时候,用gitk查看一下:git-003
已经彻底回复到了“change file 1”的版本了。
4,直接回复到某个版本
我们现在切换到banana分支。
git checkout banana
然后用gitk看一下。可以看出,我们之前的操作,对banana分支一点影响也没有。现在我们需要把banana分支回复到初始状态,但是当前的改动的代码还是需要留着。我们可以看,init版本是当前版本的父节点的父节点。我们可以这么操作:
git reset --soft HEAD^^
然后用gitk看一下:git-004
最近的版本已经变成了init version了。所有的改动都是add未提交状态。
5,得到当前最新代码
最后。我们把file1.txt和file2.txt都删掉。我们需要从版本库中取得当前最新的代码。
很简单:
git checkout master
如果是要banana分支的最新代码,则:
git checkout banana
以上的操作,我们知道了如何查看版本分支,和如何回复到以前的版本。
D. git怎么查看版本命令行
首先确保你的本地git工作目录下已经增加了远程分支了使用gitremote-v查看。如果没有则先使用gitremoteadd命令添加一个(假设名为origin,分支为master)。如果已经有了,则使用gitpushoriginmaster命令提交当前工作目录下的分支到远程master分支
E. git 把一个版本分支下的一个类,迁移到另一个分支下,这个怎么做呢
使用了SVN,小问号是本地新增加的文件与服务器未同步,有* 号 是本地文件与服务器文件有区别。可能是没有提交到服务器。
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion
F. 如何使用git回滚版本到分支中的某一个commit
git reset [commit 哈希值]
但是这样做只能把本地分支回滚到该commit上,远程分支还在原来的地方。
可以这样操作:在你想要回滚的commit上另外建一个新分支,然后git checkout [该分支],然后把原来的分支删除掉,git branch -d [老分支]可以删除本地的老分支,同样,远程分支还是老状态,可以git push origin :[老分支],把远程的老分支删除,这样你需要回滚的commit之后的信息在本地和远程都彻底消灭了(慎重,确保你真的不要这些信息了哦)。而你需要回滚的commit之前的信息全部保存了,只不过是分支名字换了一下,你也可以把分支改名回来。这时远程的新分支还不存在,你之后又改动commit并且push之后,远程也和本地同步上了。
G. 版本控制中的分支是什么意思,我用的是git
举个简单的例子,
比如你的代码已经发布了,
然后接到新的需求1,你正在开发中,而且周期比较长
突然接到新需求2,在发布基础上,调整一些东西,这个需求必须立即发布,
那么你就必须创建一个分支,用需求1之前的代码 来修改代码实现需求2并发布