Git與GitHub版本控制初步

參考資料:

  1. Pro Git(中文版)

安裝Git

$ sudo apt-get install git

配置Git

git config --global user.email "you@example.com"
git config --global user.name "Your Name"

$ git config --global user.email "codingadai@126.com"
$ git config --global user.name "CodingAdai"

因為Git是分布式版本控制系統(tǒng),所以夺衍,每個機器都必須自報家門:你的名字和Email地址谴垫。你也許會擔(dān)心灶芝,如果有人故意冒充別人怎么辦交播?這個不必擔(dān)心,首先我們相信大家都是善良無知的群眾关划,其次括袒,真的有冒充的也是有辦法可查的。注意git config命令的--global參數(shù)援岩,用了這個參數(shù)歼狼,表示你這臺機器上所有的Git倉庫都會使用這個配置,當(dāng)然也可以對某個倉庫指定不同的用戶名和Email地址享怀。 ——廖雪峰《Git教程》

創(chuàng)建本地倉庫

創(chuàng)建一個用于Git倉庫的文件夾羽峰。

$ mkdir git
$ cd git
$ pwd
/home/coding/git

使用git init命令把該文件夾初始化成為一個Git本地倉庫。

$ git init
Initialized empty Git repository in /home/coding/git/.git/

關(guān)聯(lián)遠程倉庫

接著在本地倉庫下關(guān)聯(lián)一個遠程倉庫。

$ git remote add origin git@192.168.1.145:htlar.git

如果關(guān)聯(lián)沒有問題梅屉,則控制臺沒有任何提示值纱。
這時,使用 ls 命令履植,是不會看到任何目錄和文件的(不管遠程倉庫是否有內(nèi)容)计雌。
接下來,使用 git pull <remote> <branch> 命令把遠程倉庫的內(nèi)容同步到本地倉庫玫霎。

$ git pull origin master
git@192.168.1.145's password:
From 192.168.1.145:htlar
 * branch            master     -> FETCH_HEAD

克隆遠程倉庫

假設(shè)我們沒有遠程倉庫和本地倉庫凿滤,那么最好的方式應(yīng)該是先創(chuàng)建遠程倉庫,再從遠程庫克隆庶近。
首先我們可以在github.com翁脆,coding.net,oschina.net或者自己搭建的Git服務(wù)器,創(chuàng)建一個遠程倉庫鼻种。
這里我的遠程倉庫創(chuàng)建在自己搭建的服務(wù)器中反番。

$ git clone git@192.168.1.145:htlar.git
Cloning into 'htlar'...
git@192.168.1.145's password:
remote: Counting objects: 8, done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 8 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (8/8), done.
Checking connectivity... done.

之后,會在當(dāng)前目錄多了一個名為htlar的子目錄

本地分支

創(chuàng)建分支以及分支的管理請查閱Pro Git(中文版)

以下摘自 廖雪峰《Git教程》

創(chuàng)建分支

$ git checkout -b dev
Switched to a new branch 'dev'

git checkout命令加上-b參數(shù)表示創(chuàng)建并切換叉钥,相當(dāng)于以下兩條命令:

$ git branch dev
$ git checkout dev
Switched to branch 'dev'

切換分支

git checkout <branch>

$ git checkout master
Switched to branch 'master'

查看分支

$ git branch
* android
  master

刪除分支

$ git branch -d dev
Deleted branch dev (was 04d09e5).

遠程分支

創(chuàng)建遠程分支

遠程分支就是本地分支push到遠程分支上的時候產(chǎn)生的罢缸。比如master就是一個最典型的遠程分支(默認)。

$ git push origin master
$ git push orgin serverfix

這里其實走了一點捷徑投队。Git 自動把 serverfix 分支名擴展為 refs/heads/serverfix:refs/heads/serverfix枫疆,意為“取出我在本地的 serverfix 分支,推送到遠程倉庫的 serverfix 分支中去”敷鸦。我們將在第九章進一步介紹 refs/heads/ 部分的細節(jié)息楔,不過一般使用的時候都可以省略它。也可以運行 git push origin serverfix:serverfix 來實現(xiàn)相同的效果扒披,它的意思是“上傳我本地的 serverfix 分支到遠程倉庫中去值依,仍舊稱它為 serverfix 分支”。通過此語法碟案,你可以把本地分支推送到某個命名不同的遠程分支:若想把遠程分支叫作 awesomebranch愿险,可以用 git push origin serverfix:awesomebranch 來推送數(shù)據(jù)。 ——《Git Pro 中文版》

注意: 如果本地倉庫中沒有名為serverfix的分支价说,則會出現(xiàn)錯誤辆亏,正確的寫法:

$ git push orgin master:serverfix

如果遠程倉庫沒有名為serverfix分支,則遠程倉庫會自動創(chuàng)建熔任。

查看遠程分支

$ git branch -a
    * master
      remotes/origin/daixiaodong
      remotes/origin/dev
      remotes/origin/master

跟蹤遠程分支

$ git checkout -b sf origin/serverfix
    Branch sf set up to track remote branch refs/remotes/origin/serverfix.
    Switched to a new branch "sf"

刪除遠程分支

如果不再需要某個遠程分支了褒链,比如搞定了某個特性并把它合并進了遠程的 master 分支(或任何其他存放穩(wěn)定代碼的分支)唁情,可以用這個非常無厘頭的語法來刪除它:git push [遠程名] :[分支名]疑苔。如果想在服務(wù)器上刪除 serverfix 分支,運行下面的命令:

$ git push origin :serverfix
    To git@github.com:schacon/simplegit.git
    - [deleted] serverfix

咚甸鸟!服務(wù)器上的分支沒了惦费。你最好特別留心這一頁兵迅,因為你一定會用到那個命令,而且你很可能會忘掉它的語法薪贫。有種方便記憶這條命令的方法:記住我們不久前見過的 git push [遠程名] [本地分支]:[遠程分支] 語法恍箭,如果省略 [本地分支],那就等于是在說“在這里提取空白然后把它變成[遠程分支]”瞧省。 ——《Git Pro 中文版》

其他

什么是origin

當(dāng)你從遠程倉庫克隆時扯夭,實際上Git自動把本地的master分支和遠程的master分支對應(yīng)起來了,并且鞍匾,遠程倉庫的默認名稱是origin交洗。(origin其實就是遠程倉庫的git地址的一個別名,這種說法不確定對不對)
要查看遠程庫的信息橡淑,用git remote:

$ git remote
origin

或者构拳,用git remote -v顯示更詳細的信息:

$ git remote -v
origin  git@github.com:michaelliao/learngit.git (fetch)
origin  git@github.com:michaelliao/learngit.git (push)

上面顯示了可以抓取和推送的origin的地址。如果沒有推送權(quán)限梁棠,就看不到push的地址置森。 ——廖雪峰《Git教程》

GitHub

在GitHub新建一個空倉庫后,GitHub會提示我們

We recommend every repository include a README, LICENSE, and .gitignore.

…or create a new repository on the command line

echo "# test" >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin https://github.com/CodingAdai/test.git
git push -u origin master

…or push an existing repository from the command line

git remote add origin https://github.com/CodingAdai/test.git
git push -u origin master

我們可以根據(jù)提示來進行下一步操作符糊。
我的情況是凫海,我已經(jīng)有一個本地倉庫,而且已經(jīng)有文件濒蒋。而且有遠程倉庫盐碱,也是不為空的,我可以執(zhí)行后一個提示沪伙,但是在我push的時候瓮顽,報錯了,提示有沖突围橡,這時候我需要先把遠程倉庫pull下來暖混,與本地倉庫合并。但這里有遇到一個問題翁授,就是有沖突拣播,且Git不能解決。(待補充)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末收擦,一起剝皮案震驚了整個濱河市贮配,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌塞赂,老刑警劉巖泪勒,帶你破解...
    沈念sama閱讀 221,430評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡圆存,警方通過查閱死者的電腦和手機叼旋,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,406評論 3 398
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來沦辙,“玉大人夫植,你說我怎么就攤上這事∮脱叮” “怎么了详民?”我有些...
    開封第一講書人閱讀 167,834評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長陌兑。 經(jīng)常有香客問我阐斜,道長,這世上最難降的妖魔是什么诀紊? 我笑而不...
    開封第一講書人閱讀 59,543評論 1 296
  • 正文 為了忘掉前任谒出,我火速辦了婚禮,結(jié)果婚禮上邻奠,老公的妹妹穿的比我還像新娘笤喳。我一直安慰自己,他們只是感情好碌宴,可當(dāng)我...
    茶點故事閱讀 68,547評論 6 397
  • 文/花漫 我一把揭開白布杀狡。 她就那樣靜靜地躺著,像睡著了一般贰镣。 火紅的嫁衣襯著肌膚如雪呜象。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,196評論 1 308
  • 那天碑隆,我揣著相機與錄音恭陡,去河邊找鬼。 笑死上煤,一個胖子當(dāng)著我的面吹牛休玩,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播劫狠,決...
    沈念sama閱讀 40,776評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼拴疤,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了独泞?” 一聲冷哼從身側(cè)響起呐矾,我...
    開封第一講書人閱讀 39,671評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎懦砂,沒想到半個月后蜒犯,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體讲坎,經(jīng)...
    沈念sama閱讀 46,221評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,303評論 3 340
  • 正文 我和宋清朗相戀三年愧薛,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片衫画。...
    茶點故事閱讀 40,444評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡毫炉,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出削罩,到底是詐尸還是另有隱情瞄勾,我是刑警寧澤,帶...
    沈念sama閱讀 36,134評論 5 350
  • 正文 年R本政府宣布弥激,位于F島的核電站进陡,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏微服。R本人自食惡果不足惜趾疚,卻給世界環(huán)境...
    茶點故事閱讀 41,810評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望以蕴。 院中可真熱鬧糙麦,春花似錦、人聲如沸丛肮。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,285評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽宝与。三九已至焚廊,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間习劫,已是汗流浹背咆瘟。 一陣腳步聲響...
    開封第一講書人閱讀 33,399評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留诽里,地道東北人搞疗。 一個月前我還...
    沈念sama閱讀 48,837評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像须肆,于是被迫代替她去往敵國和親匿乃。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,455評論 2 359

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