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並發布