Git基本操作(六)

遠程庫操作

1.提交到遠程庫

$ git push username@ipaddr: 遠端repository名(目錄/URL) 本地分支名:遠端分支名

這條命令將本地git庫的一個本地分支push到遠端git庫的遠端分支中

$ git push origin master

orign 為默認遠程分支
master 為默認本地分支

可手動指定,也可在gitconfig中指定遠程配置卢鹦,即可直接使用git push

2.獲取更新

  1. get fetch & git merge
    git fetch [remote-name] 從遠程倉庫中拉取所有你本地倉庫還沒有的數(shù)據(jù)署隘。需要記住,fetch命令指示將遠端的數(shù)據(jù)拉到本地倉庫饺窿,并不自動合并到當前工作分支鲫咽,只有當你確實準備好了姨伤,才能通過執(zhí)行g(shù)it merge命令合并。

  2. git pull(= git fetch + git merge)
    git pull命令相當于git fetch + git merge,即從遠程倉庫中拉取所有你本地倉庫中還沒有的數(shù)據(jù)贩幻,并自動合并到當前工作分支轿腺。

與git clone不同两嘴, git pull可以從任意一個git庫獲取某個分支的內(nèi)容。用法如下:
git-pull username@ipaddr: 遠端repository名 遠端分支名:本地分支名族壳。

這條命令將從遠端git庫的遠端分支名獲取到本地git庫的一個本地分支中憔辫。其中,如果不寫本地分支名仿荆,則默認pull到本地當前分支贰您。
需要注意的是,git-pull也可以用來合并分支拢操。 和git-merge的作用相同锦亦。 因此,如果你的本地分支已經(jīng)有內(nèi)容令境,則git-pull會合并這些文件杠园,如果有沖突會報警。

3.clone一個遠程項目

linux內(nèi)核源代碼
當我們打開它的網(wǎng)站時舔庶,發(fā)現(xiàn)有如下面的一段提示:

URL
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
http://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git

URL下面的三行字符串表示三個地址抛蚁,我們可以通過這三個地址得到同樣的一份Linux內(nèi)核源代碼。

也就是說下面這三條命令最終得到的是同一份源代碼:

git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git  
git clone http://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git  
git cone https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git  

URL

git://栖茉、http://篮绿、https://這些代表是傳輸git倉庫的協(xié)議形式,而“git.kernel.org“則代表了Git倉庫存儲的服務(wù)器名字(域名)吕漂,“/pub/scm/linux/kernel/git/torvalds/linux-2.6.git” 則代表了Git倉庫在服務(wù)器上位置。

Git 倉庫除了可以通過上面的git尘应、http惶凝、https協(xié)議傳輸外還可以通過ssh、ftp(s)犬钢、rsync等協(xié)議來傳輸苍鲜。git clone的本質(zhì)就是把“Git目錄”里面的內(nèi)容拷貝過來,大家想想看玷犹,一般的“Git目錄”里有成千上萬的各種對象(提交對象混滔,樹對象,二進制對象......)歹颓,如果逐一復制的話坯屿,其效率就可想而知。

如果通過git巍扛、ssh協(xié)議傳輸领跛,服務(wù)器端會在傳輸前把需要傳輸?shù)母鞣N對象先打好包再進行傳輸;而http(s)協(xié)議則會反復請求要傳輸?shù)牟煌瑢ο蟆H绻麄}庫里面的提交不多的話撤奸,前者和后者的效率相差不多;但是若倉庫里有很多提交的話吠昭,git喊括、ssh協(xié)議進行傳輸則會更有效率。

現(xiàn)在我們執(zhí)行了下面這條命令矢棚,把linux-2.6的最新版源代碼clone下來:

$cd ~/  
$mkdir temp  
$git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git  
Initialized empty Git repository in /home/liuhui/temp/linux-2.6/.git/
remote: Counting objects: 1889189, done.
remote: Compressing objects: 100% (303141/303141), done.
Receiving objects: 100% (1889189/1889189), 385.03 MiB | 1.64 MiB/s, done.
remote: Total 1889189 (delta 1570491), reused 1887756 (delta 1569178)
Resolving deltas: 100% (1570491/1570491), done.
Checking out files: 100% (35867/35867), done.

當我們執(zhí)行了“git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git”這條命令后大家可以看到這條輸出:

Initialized empty Git repository in /home/user/temp/linux-2.6/.git/

這就是意味著我們在本地先建了一個“l(fā)inux-2.6”目錄郑什,然后在這個目錄建了一個空的Git本地倉庫(Git目錄);里面將會存儲從網(wǎng)上拉下來的歷史提交。

下面兩條輸入代表服務(wù)器現(xiàn)在調(diào)用 git-pack-objects 對它的倉庫進行打包和壓縮:

remote: Counting objects: 1888686, done.  
remote: Compressing objects: 100% (302932/302932), done.

然后客戶端接收服務(wù)器端發(fā)過送過來的數(shù)據(jù):

Receiving objects: 100% (1889189/1889189), 385.03 MiB | 1.64 MiB/s, done.

在我們執(zhí)行完上面的clone linux-2.6代碼的的操作后蒲肋,Git會從“Git目錄”里把最新的代碼到簽出(checkout)到“l(fā)inux-2.6”這個目錄里面蹦误。我們一般把本地的“l(fā)inux-2.6”這個目錄叫做”工作目錄“(work directory),它里面保存著你從其它地方clone(or checkout)過來的代碼肉津。當你在項目的不同分支間切換時强胰,“工作目錄”中的文件可能會被替換或者刪除;“工作目錄”只是保存著當前的工作,你可以修改里面文件的內(nèi)容直到下次提交為止妹沙。

4.庫的逆轉(zhuǎn)與恢復

Git-reset的概念比較復雜墩剖。它的命令形式:

git-reset [--mixed | --soft | --hard] [<commit-ish>] 

命令的選項:
--mixed 這個是默認的選項。 如git-reset [--mixed] dev1(dev1的定義可以參見2.6.5)炮温。它的作用僅是重置分支狀態(tài)到dev1^, 但是卻不改變?nèi)魏喂ぷ魑募膬?nèi)容垒迂。即,從dev1到dev1的所有文件變化都保留了悍引,但是dev1到dev1之間的所有commit日志都被清除了恩脂,而且,發(fā)生變化的文件內(nèi)容也沒有通過git-add標識趣斤,如果您要重新commit俩块,還需要對變化的文件做一次git-add。 這樣浓领,commit后玉凯,就得到了一份非常干凈的提交記錄。
--soft 相當于做了git-reset –mixed联贩,后漫仆,又對變化的文件做了git-add。如果用了該選項泪幌, 就可以直接commit了盲厌。
--hard 這個命令就會導致所有信息的回退, 包括文件內(nèi)容祸泪。 一般只有在重置廢棄代碼時吗浩,才用它。 執(zhí)行后浴滴,文件內(nèi)容也無法恢復回來了拓萌。


上一篇:Git基本操作(五)
下一篇:Git基本操作(七)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市升略,隨后出現(xiàn)的幾起案子微王,更是在濱河造成了極大的恐慌屡限,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,386評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件炕倘,死亡現(xiàn)場離奇詭異钧大,居然都是意外死亡,警方通過查閱死者的電腦和手機罩旋,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評論 3 394
  • 文/潘曉璐 我一進店門啊央,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人涨醋,你說我怎么就攤上這事瓜饥。” “怎么了浴骂?”我有些...
    開封第一講書人閱讀 164,704評論 0 353
  • 文/不壞的土叔 我叫張陵乓土,是天一觀的道長。 經(jīng)常有香客問我溯警,道長趣苏,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,702評論 1 294
  • 正文 為了忘掉前任梯轻,我火速辦了婚禮食磕,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘喳挑。我一直安慰自己彬伦,他們只是感情好,可當我...
    茶點故事閱讀 67,716評論 6 392
  • 文/花漫 我一把揭開白布蟀悦。 她就那樣靜靜地躺著媚朦,像睡著了一般。 火紅的嫁衣襯著肌膚如雪日戈。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,573評論 1 305
  • 那天孙乖,我揣著相機與錄音浙炼,去河邊找鬼。 笑死唯袄,一個胖子當著我的面吹牛弯屈,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播恋拷,決...
    沈念sama閱讀 40,314評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼资厉,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了蔬顾?” 一聲冷哼從身側(cè)響起宴偿,我...
    開封第一講書人閱讀 39,230評論 0 276
  • 序言:老撾萬榮一對情侶失蹤湘捎,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后窄刘,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體窥妇,經(jīng)...
    沈念sama閱讀 45,680評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,873評論 3 336
  • 正文 我和宋清朗相戀三年娩践,在試婚紗的時候發(fā)現(xiàn)自己被綠了活翩。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,991評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡翻伺,死狀恐怖材泄,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情吨岭,我是刑警寧澤拉宗,帶...
    沈念sama閱讀 35,706評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站未妹,受9級特大地震影響簿废,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜络它,卻給世界環(huán)境...
    茶點故事閱讀 41,329評論 3 330
  • 文/蒙蒙 一族檬、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧化戳,春花似錦单料、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至掠廓,卻和暖如春换怖,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背蟀瞧。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評論 1 270
  • 我被黑心中介騙來泰國打工沉颂, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人悦污。 一個月前我還...
    沈念sama閱讀 48,158評論 3 370
  • 正文 我出身青樓铸屉,卻偏偏與公主長得像,于是被迫代替她去往敵國和親切端。 傳聞我的和親對象是個殘疾皇子彻坛,可洞房花燭夜當晚...
    茶點故事閱讀 44,941評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 1.git的安裝 1.1 在Windows上安裝Git msysgit是Windows版的Git,從https:/...
    落魂灬閱讀 12,663評論 4 54
  • 三大區(qū)域: 工作區(qū) → 緩存區(qū) → 本地倉庫 一 、 使用 git config 命令進行配置: git ...
    Manchangdx閱讀 2,845評論 0 2
  • 1. 安裝 Github 查看是否安裝git: $ git config --global user.name "...
    Albert_Sun閱讀 13,661評論 9 163
  • 每個人都隔三差五的犯著錯 大錯小錯錯中錯 有時是你傷害到我 然后我又變成了報復你的那一個 但是我們也會原諒 仿佛身...
    Grassash閱讀 234評論 0 0
  • 讀《迎男而上》 這其實是一本寫兩性的書籍昌屉。作者詼諧幽默钙蒙。敢說敢寫。有好笑的地方也讓人噴飯怠益。所以我推薦仪搔,閑著總想找點...
    無風無雨又有晴閱讀 528評論 0 0