git遠程操作

git clone:

? ? ? git clone支持多種協議,除了HTTP(s)以外,還支持SSH、Git、本地文件協議等,通常來說,Git協議下載速度最快,SSH協議用于需要用戶認證的場合。在clone完成之后,Git 會自動為你將此遠程倉庫命名為origin(origin只相當于一個別名,運行git remote –v或者查看.git/config可以看到origin的含義),并下載其中所有的數據,建立一個指向它的master 分支的指針,我們用(遠程倉庫名)/(分支名) 這樣的形式表示遠程分支,所以origin/master指向的是一個remote branch(從那個branch我們clone數據到本地),但你無法在本地更改其數據。同時,Git 會建立一個屬于你自己的本地master 分支,它指向的是你剛剛從remote server傳到你本地的副本。隨著你不斷的改動文件,git add, git commit,master的指向會自動移動,你也可以通過merge(fast forward)來移動master的指向。

git clone + 遠程倉庫項目網址:

克隆遠程倉庫項目到本地倉庫,也就是俗稱的拉代碼,本地倉庫生成的項目與遠程倉庫的項目結構一致。git clone + 遠程倉庫項目網址 + 本地倉庫項目目錄:克隆遠程倉庫項目到本地倉庫,本地倉庫生成的項目放在第二個參數【本地倉庫項目目錄】中


git fetch:

理解 fetch 的關鍵, 是理解 FETCH_HEAD.FETCH_HEAD指的是: 某個branch在服務器上的最新狀態.每一個執行過fetch操作的項目都會存在一個FETCH_HEAD列表, 這個列表保存在 .git/FETCH_HEAD 文件中, 其中每一行對應于遠程服務器的一個分支.git fetch這一步其實是執行了兩個關鍵操作:- 創建并更新所有遠程分支的本地遠程分支.- 設定當前分支的FETCH_HEAD為遠程服務器的master分支 (默認的)相當于在本地新建了一個分支,不過這個分支是隱藏的,也可以理解為,將遠程的更新克隆的到了本地,但是還沒有與本地的文件合并.拉下來的更新用 origin/master 來訪問,后期可用git branch origin/master 來合并剛剛拉下來的更新需要注意的是: 和push不同, fetch會自動獲取遠程'新加入'的分支.git fetch origin同上, 只不過手動指定了遠程倉庫.git fetch origin branch1取回指定分支遠程倉庫的branch1分支的更新到本地注意: 在這種情況下, 不會在本地創建本地遠程分支, 這是因為:這個操作是git pull origin branch1的第一步, 而對應的pull操作,并不會在本地創建新的branch.

git fetch origin branch1:branch2

首先執行上面的fetch操作,使用遠程branch1分支在本地創建branch2(但不會切換到該分支), 如果本地不存在branch2分支, 則會自動創建一個新的branch2分支, 如果本地存在branch2分支, 并且是`fast forward', 則自動合并兩個分支, 否則, 會阻止以上操作.

git fetch origin :branch2

等價于: git fetch origin master:branch2


git rebase + 分支名稱:

合并分支,與fetch連用,合并修改,fetch了哪個分支就合并哪個分支


git branch -r:

顯示遠程分支


Git push:

git? push? origin? 本地分支A :?遠程分支B?

push 本地分支A到遠程庫origin的分支B HEAD指向當前工作的branch,master不一定指向當前工作的branch可以發現,master就是local branch,origin/master是remote branch$git diff origin/master master (show me the changes between the remote master branch and my master branch).需要注意的是,remotes/origin/master和origin/master的指向是相同的$git diff origin/master remotes/origin/master git push origin masterorigin指定了你要push到哪個remotemaster其實是一個“refspec”,正常的“refspec”的形式為”+:”,冒號前表示local branch的名字,冒號后表示remote repository下 branch的名字。注意,如果你省略了,git就認為你想push到remote repository下和local branch相同名字的branch。聽起來有點拗口,再解釋下,push是怎么個push法,就是把本地branch指向的commit push到remote repository下的branchgit push origin master:master (在local repository中找到名字為master的branch,使用它去更新remote repository下名字為master的branch,如果remote repository下不存在名字是master的branch,那么新建一個,如果存在則報錯)git push origin master:(省略了,等價于“git push origin master:master”)

git push origin master:refs/for/mybranch :

(在local repository中找到名字為master的branch,用他去更新remote repository下面名字為mybranch的branch)

git push origin HEAD:refs/for/mybranch :

(HEAD指向當前工作的branch,master不一定指向當前工作的branch,所以我覺得用HEAD還比master好些)

git push origin? ? :mybranch :

(再origin repository里面查找mybranch,刪除它。用一個空的去更新它,就相當于刪除了)


git stash:

git棧,在切換分支的時候,當前分支有未完成提交的代碼,但又不想提交,一方面是因為代碼沒有完成,一方面是因為這樣會在log中打印許多無用的日志信息。但是不提交就無法切換分支,于是git便開辟出來一個臨時的倉庫,這個倉庫可以暫時存放最新修改過的代碼。

git棧,可以存放多次修改,切換分支后這些存放的修改還在。

工作區--------暫存區--------本地倉庫

? ? ? ? \

? ? ? ? ? ? \

? ? ? ? ? ? ? ? ? \----git棧

git stash

保存當前的工作進度,會分別對暫存區和工作區的狀態進行保存。保存后工作區恢復到之前最后一次提交的狀態

git stash list

顯示進度列表。此命令顯然顯示了git stash 可以多次保存工作進度,并在恢復時候選擇。

git stash pop [--index] []

如果不使用任何參數,會恢復最新保存的工作進度,并將恢復的工作進度從存儲的git棧列表中清除。

如果提供參數(來自git stash list顯示的列表),則將工作進度恢復?;謴屯戤呉矊膅it棧刪除工作進度。

git stash [save [--patch] [-k|--[no]keep-index] [-q|--quiet] []]

這條命令實際上是第一條git stash命令的完整版。

使用參數--patch會顯示工作區和HEAD的差異,通過對差異文件的編輯決定在進度中最終要保存的工作區的內容,通過編輯差異文件可以在進度中排除無關內容。

使用-k或者--keep-index參數,在保存進度后不會將暫存區重置。默認會將暫存區和工作區強制重置。

git stash apply [--index] []

除了不刪除恢復的進度之外,其余和git stash pop 命令一樣。

git stash drop []

刪除一個存儲的進度。默認刪除最新的進度。

git stash clear

刪除所有存儲的進度。


最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,923評論 6 535
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,740評論 3 420
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 176,856評論 0 380
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,175評論 1 315
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,931評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,321評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,383評論 3 443
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,533評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,082評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,891評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,067評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,618評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,319評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,732評論 0 27
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,987評論 1 289
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,794評論 3 394
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,076評論 2 375

推薦閱讀更多精彩內容

  • 作者:阮一峰 日期:2014年6月12日 Git是目前最流行的版本管理系統,學會Git幾乎成了開發者的必備技能。 ...
    Maggie編程去閱讀 465評論 0 1
  • Git遠程操作詳解[ ](http://www.bshare.cn/share)作者: 阮一峰日期: 2014年6...
    開子的私家地閱讀 442評論 0 2
  • git clone 基本命令git clone <遠程版本庫> <本地目錄名> git clone支持多種協議,除...
    Rancune閱讀 2,488評論 0 2
  • 每日一寫# 記得上中學那會兒自己的夢想是要成為一個作家,二十歲的時候作為一個文學青年常??磿?,忘記哪個大文豪談到寫...
    文藝圈兒閱讀 935評論 0 0
  • 在一個陽光明媚的早晨,我下了飛機。 當我走出機場的時候,來了一位年紀偏大的叔叔。 我剛要問他是誰的時候,他先開...
    5e98d3c35813閱讀 267評論 5 2