Git的基本操作

配置Git

首先在本地創(chuàng)建ssh key锈候;

$ ssh-keygen -t rsa -C "your_email@youremail.com"

后面的your_email@youremail.com改為你在GitHub上注冊的郵箱薄料,之后會要求確認路徑和輸入密碼,我們這使用默認的一路回車即可泵琳。成功的話會在C:\Users\Leo下產生.ssh文件夾摄职,進去誊役,打開id_rsa.pub,復制里面的key谷市。
回到github上蛔垢,進入 Account Settings(賬戶配置),左邊選擇SSH Keys歌懒,Add SSH Key,title隨便填啦桌,粘貼在你電腦上生成的key。
為了驗證是否成功及皂,在git bash下輸入:

$ ssh -T git@github.com

如果是第一次的會提示是否continue甫男,輸入yes就會看到:

You've successfully authenticated, but GitHub does not provide shell access。

這就表示已成功連上github验烧。
接下來我們要做的就是把本地倉庫傳到github上去板驳,在此之前還需要設置usernameemail,因為github每次commit都會記錄他們碍拆。

$ git config --global user.name "your name"
$ git config --global user.email "your_email@youremail.com"

進入要上傳的倉庫若治,右鍵git bash,添加遠程地址:

$ git remote add origin git@github.com:yourName/yourRepo.git

后面的yourNameyourRepo表示你再github的用戶名和剛才新建的倉庫感混,加完之后進入.git端幼,打開config,這里會多出一個remote "origin"內容弧满,這就是剛才添加的遠程地址婆跑,也可以直接修改config來配置遠程地址。
創(chuàng)建新文件夾庭呜,打開滑进,然后執(zhí)行 git init 以創(chuàng)建新的 git 倉庫。

檢出倉庫

執(zhí)行如下命令以創(chuàng)建一個本地倉庫的克隆版本:

$ git clone /path/to/repository 

如果是遠端服務器上的倉庫募谎,你的命令會是這個樣子:

$ git clone username@host:/path/to/repository

工作流

你的本地倉庫由git維護的三棵“樹”組成扶关。第一個是你的工作目錄,他持有實際文件数冬;第二個是暫存區(qū)(Index)节槐,他像個緩存區(qū)域,臨時保存你的改動吉执;最后是HEAD疯淫,它指向你最后一次提交的結果。

你可以提出更改(吧它們添加到暫存區(qū))戳玫,使用如下命令:

$ git add <filename> #添加單個文件
$ git add * #添加所有文件

這是git基本工作流程的第一步熙掺;使用如下命令以實際提交改動:

$ git commit -m "代碼提交信息"

現在,你的改動已經提交到了HEAD咕宿,但是還沒到你的遠端倉庫币绩。

推送改動

你的改動現在已經在本地倉庫的HEAD中了蜡秽。執(zhí)行如下命令已將這些改動提交到遠端倉庫:

git push origin master

可以把master換成你想要推送的任何分支。

如果你還沒有克隆現有的倉庫缆镣,并欲將你的倉庫連接到某個遠程服務器芽突,你可以使用如下命令添加:

$ git remote add origin <server>

如此你就能夠將你的改動推送到所添加的服務器上去了。

分支

分支是用來將特性開發(fā)絕緣開來的董瞻。在你創(chuàng)建倉庫的時候寞蚌,master是“默認的”分支。在其它分支上進行開發(fā)钠糊,完成后再將它們合并到主分支上挟秤。

創(chuàng)建一個叫做"feature_x"的分支,并切換過去:

$ git checkout -b feature_x

切換回主分支:

$ git checkout master

再把新建的分支刪掉:

$ git branch -d feature_x

除非你將分支推送到遠端倉庫抄伍,不然該分支就是 不為他人所見的:

$ git push origin <branch>

更新與合并

要更新你的本地倉庫至最新改動艘刚,執(zhí)行:

$ git pull

以在你的工作目錄中獲取(fetch)合并(merge)遠端的改動截珍。
要合并其他分支到你的當前分支(例如 master)攀甚,執(zhí)行:

$ git merge <branch>

在這兩種情況下,git都會嘗試去合并并改動岗喉。遺憾的是秋度,這可能并非每次都成功,并可能出現沖突(conflicts)钱床。這時候就需要你修改這些文件來手動合并這些沖突(conflicts)静陈。改完之后,你需要執(zhí)行如下命令已將它們標記為合并成功:

$ git add <filename>

在合并改動之前诞丽,你可以使用如下命令預覽差異:

$ git diff <source_branch> <target_branch>

標簽

為軟件發(fā)布創(chuàng)建標簽是推薦的。這個概念早已存在拐格,在SVN中也有僧免。你可以執(zhí)行如下命令創(chuàng)建一個叫做 1.0.0 的標簽:

$ git tag 1.0.0 1b2e1d63ff

1b2e1d63ff 是你想要標記的提交ID的前10位字符∧笞牵可以使用下列命令獲取提交ID

$ git log

你也可以使用少一點的提交ID前幾位懂衩,只要它的指向具有唯一性

替換本地改動

假如你操作失誤(當然金踪,這最好永遠不要發(fā)生)浊洞,你可以使用如下命令替換掉本地改動:

$ git checkout -- <filename>

此命令會使用HEAD中的最新內容替換掉你的工作目錄中的文件。已添加到暫存區(qū)的改動以及新文件都不會受到影響胡岔。
假如你想丟棄你在本地的所有改動與提交法希,可以到服務器上獲取最新的版本歷史,并將你本地主分支指向它:

$ git fetch origin
$ git reset --hard origin/master
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末靶瘸,一起剝皮案震驚了整個濱河市苫亦,隨后出現的幾起案子毛肋,更是在濱河造成了極大的恐慌,老刑警劉巖屋剑,帶你破解...
    沈念sama閱讀 217,657評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件润匙,死亡現場離奇詭異,居然都是意外死亡唉匾,警方通過查閱死者的電腦和手機孕讳,發(fā)現死者居然都...
    沈念sama閱讀 92,889評論 3 394
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來巍膘,“玉大人厂财,你說我怎么就攤上這事〉渑牵” “怎么了蟀苛?”我有些...
    開封第一講書人閱讀 164,057評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長逮诲。 經常有香客問我帜平,道長,這世上最難降的妖魔是什么梅鹦? 我笑而不...
    開封第一講書人閱讀 58,509評論 1 293
  • 正文 為了忘掉前任裆甩,我火速辦了婚禮,結果婚禮上齐唆,老公的妹妹穿的比我還像新娘嗤栓。我一直安慰自己,他們只是感情好箍邮,可當我...
    茶點故事閱讀 67,562評論 6 392
  • 文/花漫 我一把揭開白布茉帅。 她就那樣靜靜地躺著,像睡著了一般锭弊。 火紅的嫁衣襯著肌膚如雪堪澎。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,443評論 1 302
  • 那天味滞,我揣著相機與錄音樱蛤,去河邊找鬼。 笑死剑鞍,一個胖子當著我的面吹牛昨凡,可吹牛的內容都是我干的。 我是一名探鬼主播蚁署,決...
    沈念sama閱讀 40,251評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼便脊,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了光戈?” 一聲冷哼從身側響起就轧,我...
    開封第一講書人閱讀 39,129評論 0 276
  • 序言:老撾萬榮一對情侶失蹤证杭,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后妒御,有當地人在樹林里發(fā)現了一具尸體解愤,經...
    沈念sama閱讀 45,561評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,779評論 3 335
  • 正文 我和宋清朗相戀三年乎莉,在試婚紗的時候發(fā)現自己被綠了送讲。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,902評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡惋啃,死狀恐怖哼鬓,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情边灭,我是刑警寧澤异希,帶...
    沈念sama閱讀 35,621評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站绒瘦,受9級特大地震影響称簿,放射性物質發(fā)生泄漏。R本人自食惡果不足惜惰帽,卻給世界環(huán)境...
    茶點故事閱讀 41,220評論 3 328
  • 文/蒙蒙 一憨降、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧该酗,春花似錦授药、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至爵嗅,卻和暖如春骄蝇,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背操骡。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留赚窃,地道東北人册招。 一個月前我還...
    沈念sama閱讀 48,025評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像勒极,于是被迫代替她去往敵國和親是掰。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,843評論 2 354

推薦閱讀更多精彩內容

  • Git是什么辱匿? Git是目前世界上最先進的分布式版本控制系統(tǒng)(沒有之一)键痛,簡單點講就是可以記錄你對文件每一次的改動...
    Jackpon閱讀 365評論 0 1
  • Git 是什么? Git 是一個分布式的代碼管理容器丁频,本地和遠端都保有一份相同的代碼杉允。Git 倉庫主要是由是三部分...
    齊修_qixiuss閱讀 5,983評論 4 38
  • Git 基礎 基本原理 客戶端并不是只提取最新版本的文件快照,而是把代碼倉庫完整的鏡像下來席里。這樣一來叔磷,任何一處協(xié)同...
    __silhouette閱讀 15,882評論 5 147
  • 1、直接克隆遠程倉庫的某個分支 git clone -b 遠程分支名 遠程倉庫地址 本地文件夾名 如...
    曹軒躍閱讀 637評論 0 1
  • 今天奖磁,去了朝陽明媚的地方 芳草雖未開花 但草一樣濃濃的情意 卻化不開 沒能等到晚上 是一個遺憾 看不到疲累的燕歸巢...
    倆葉閱讀 170評論 0 0