git系列教程之一:基本用法

git的安裝后的配置


添加配置信息

git config --global user.name  "xxx"
git config --global user.email   xxxxxxxxxxxxxxxxx  //--global參數(shù)表示全局配置羽利,對本機每個git項目均起作用

查詢配置信息

gedit ~/.gitconfig

Git的使用

在需要的指定目錄添加庫:

git init  //初始化一個空的庫

向倉庫中添加目錄

git add +目錄名 //所添加的目錄只能是在倉庫所在目錄的子目錄或根目錄中锭部,否則會提示fatal:'目錄' is outside repository

提交

git commit -m 'message'

不想寫更新信息止潮?或是出現(xiàn)Aborting commit due to empty message?

git commit -a --allow-empty-message

管理遠程倉庫(轉(zhuǎn)載自Git 遠程倉庫的使用 - SelBoo's Blog 色蘿卜

查看當(dāng)前的遠程庫

要查看當(dāng)前配置有哪些遠程倉庫脚作,可以用 git remote 命令惩阶,它會列出每個遠程庫的簡短名字括享。在克隆完某個項目后,至少可以看到一個名為 origin 的遠程庫硝训,Git 默認(rèn)使用這個名字來標(biāo)識你所克隆的原始倉庫:

git clone git://github.com/schacon/ticgit.git
Initialized empty Git repository in /private/tmp/ticgit/.git/
remote: Counting objects: 595, done.
remote: Compressing objects: 100% (269/269), done.
remote: Total 595 (delta 255), reused 589 (delta 253)
Receiving objects: 100% (595/595), 73.31 KiB | 1 KiB/s, done.
Resolving deltas: 100% (255/255), done.
cd ticgit
git remote
origin

也可以加上 -v選項(譯注:此為 –verbose 的簡寫响委,取首字母),顯示對應(yīng)的克隆地址:

$ git remote -v
origin  git://github.com/schacon/ticgit.git

如果有多個遠程倉庫窖梁,此命令將全部列出赘风。比如在我的 Grit 項目中,可以看到:

$ cd grit
$ git remote -v
bakkdoor  git://github.com/bakkdoor/grit.git
cho45     git://github.com/cho45/grit.git
defunkt   git://github.com/defunkt/grit.git
koke      git://github.com/koke/grit.git
origin    git@github.com:mojombo/grit.git

這樣一來纵刘,我就可以非常輕松地從這些用戶的倉庫中邀窃,拉取他們的提交到本地。請注意假哎,上面列出的地址只有 origin 用的是 SSH URL 鏈接蛔翅,所以也只有這個倉庫我能推送數(shù)據(jù)上去,因為 ssh 中包含了與賬戶相關(guān)的密鑰位谋。

添加遠程倉庫

要添加一個新的遠程倉庫山析,可以指定一個簡單的名字,以便將來引用掏父,運行 git remote add [shortname] [url]

git remote
origin
git remote add pb git://github.com/paulboone/ticgit.git
git remote -v
origin  git://github.com/schacon/ticgit.git
pb  git://github.com/paulboone/ticgit.git

現(xiàn)在可以用字串 pb 指代對應(yīng)的倉庫地址了笋轨。比如說,要抓取所有 Paul 有的,但本地倉庫沒有的信息爵政,可以運行 git fetch pb

git fetch pb
remote: Counting objects: 58, done.
remote: Compressing objects: 100% (41/41), done.
remote: Total 44 (delta 24), reused 1 (delta 0)
Unpacking objects: 100% (44/44), done.
From git://github.com/paulboone/ticgit
* [new branch]      master     -pb/master
* [new branch]      ticgit     -pb/ticgit

現(xiàn)在仅讽,Paul 的主干分支(master)已經(jīng)完全可以在本地訪問了,對應(yīng)的名字是 pb/master钾挟,你可以將它合并到自己的某個分支洁灵,或者切換到這個分支,看看有些什么有趣的更新掺出。

從遠程倉庫抓取數(shù)據(jù)

正如之前所看到的徽千,可以用下面的命令從遠程倉庫抓取數(shù)據(jù)到本地:

git fetch [remote-name]

此命令會到遠程倉庫中拉取所有你本地倉庫中還沒有的數(shù)據(jù)。運行完成后汤锨,你就可以在本地訪問該遠程倉庫中的所有分支双抽,將其中某個分支合并到本地,或者只是取出某個分支闲礼,一探究竟牍汹。(我們會在第三章詳細討論關(guān)于分支的概念和操作。)

如果是克隆了一個倉庫柬泽,此命令會自動將遠程倉庫歸于 origin 名下慎菲。所以,git fetch origin 會抓取從你上次克隆以來別人上傳到此遠程倉庫中的所有更新(或是上次 fetch 以來別人提交的更新)锨并。有一點很重要露该,需要記住,fetch 命令只是將遠端的數(shù)據(jù)拉到本地倉庫琳疏,并不自動合并到當(dāng)前工作分支有决,只有當(dāng)你確實準(zhǔn)備好了闸拿,才能手工合并空盼。(說 明:事先需要創(chuàng)建好遠程的倉庫,然后執(zhí)行:git remote add [倉庫名] [倉庫url]新荤,git fetch [遠程倉庫名]揽趾,即可抓取到遠程倉庫數(shù)據(jù)到本地,再用git merge remotes/[倉庫名]/master就可以將遠程倉庫merge到本地當(dāng)前branch苛骨。這種分支方式比較適合獨立-整合開發(fā)篱瞎,即各自開發(fā)測試好后 再整合在一起。比如痒芝,Android的Framework和AP開發(fā)俐筋。

可以使用--bare 選項運行g(shù)it init 來設(shè)定一個空倉庫,這會初始化一個不包含工作目錄的倉庫严衬。

cd /opt/git
mkdir project.git
cd project.git
git --bare init

這時澄者,Join,Josie 或者Jessica 就可以把它加為遠程倉庫,推送一個分支粱挡,從而把第一個版本的工程上傳到倉庫里了赠幕。)
如果設(shè)置了某個分支用于跟蹤某個遠端倉庫的分支(參見下節(jié)及第三章的內(nèi)容),可以使用 git pull 命令自動抓取數(shù)據(jù)下來询筏,然后將遠端分支自動合并到本地倉庫中當(dāng)前分支榕堰。在日常工作中我們經(jīng)常這么用,既快且好嫌套。實際上逆屡,默認(rèn)情況下 git clone 命令本質(zhì)上就是自動創(chuàng)建了本地的 master 分支用于跟蹤遠程倉庫中的 master 分支(假設(shè)遠程倉庫確實有 master 分支)。所以一般我們運行 git pull灌危,目的都是要從原始克隆的遠端倉庫中抓取數(shù)據(jù)后康二,合并到工作目錄中當(dāng)前分支。

推送數(shù)據(jù)到遠程倉庫

項目進行到一個階段勇蝙,要同別人分享目前的成果沫勿,可以將本地倉庫中的數(shù)據(jù)推送到遠程倉庫。實現(xiàn)這個任務(wù)的命令很簡單: git push [remote-name] [branch-name]味混。如果要把本地的 master 分支推送到 origin 服務(wù)器上(再次說明下产雹,克隆操作會自動使用默認(rèn)的 master 和 origin 名字),可以運行下面的命令:

git push origin master

只有在所克隆的服務(wù)器上有寫權(quán)限翁锡,或者同一時刻沒有其他人在推數(shù)據(jù)蔓挖,這條命令才會如期完成任務(wù)。如果在你推數(shù)據(jù)前馆衔,已經(jīng)有其他人推送了若干更新瘟判,那 你的推送操作就會被駁回。你必須先把他們的更新抓取到本地角溃,并到自己的項目中拷获,然后才可以再次推送。

查看遠程倉庫信息

我們可以通過命令 git remote show [remote-name]查看某個遠程倉庫的詳細信息减细,比如要看所克隆的origin 倉庫匆瓜,可以運行:

git remote show origin
remote origin
URL: git://github.com/schacon/ticgit.git
Remote branch merged with 'git pull' while on branch master
master
Tracked remote branches
 master
 ticgit
remote origin

除了對應(yīng)的克隆地址外,它還給出了許多額外的信息未蝌。它友善地告訴你如果是在 master 分支驮吱,就可以用git pull 命令抓取數(shù)據(jù)合并到本地。另外還列出了所有處于跟蹤狀態(tài)中的遠端分支萧吠。
實際使用過程中左冬,git remote show 給出的信息可能會像這樣:

git remote show origin
remote origin
URL: git@github.com:defunkt/github.git
Remote branch merged with 'git pull' while on branch issues
issues
Remote branch merged with 'git pull' while on branch master
 master
New remote branches (next fetch will store in remotes/origin)
 caching
Stale tracking branches (use 'git remote prune')
 libwalker
 walker2
Tracked remote branches
 acl
 apiv2
 dashboard2
 issues
 master
 postgres
Local branch pushed with 'git push'
 master:master

它告訴我們,運行 git push 時缺省推送的分支是什么(譯注:最后兩行)纸型。它還顯示了有哪些遠端分支還沒有同步 到本地(譯注:第六行的 caching 分支)拇砰,哪些已同步到本地的遠端分支在遠端服務(wù)器上已被刪除(譯注:Stale tracking branches 下面的兩個分支)九昧,以及運行 git pull 時將自動合并哪些分支(譯注:前四行中列出的 issues 和 master 分支)。(此命令也可以查看到本地分支和遠程倉庫分支的對應(yīng)關(guān)系毕匀。)

遠程倉庫的刪除和重命名

在新版 Git 中可以用 git remote rename 命令修改某個遠程倉庫的簡短名稱铸鹰,比如想把 pb 改成 paul,可以這么運行:

git remote rename pb paul
git remote
origin
paul

注意皂岔,對遠程倉庫的重命名蹋笼,也會使對應(yīng)的分支名稱發(fā)生變化,原來的 pb/master 分支現(xiàn)在成了paul/master躁垛。
碰到遠端倉庫服務(wù)器遷移剖毯,或者原來的克隆鏡像不再使用,又或者某個參與者不再貢獻代碼教馆,那么需要移除對應(yīng)的遠端倉庫逊谋,可以運行 git remote rm命令:

git remote rm paul
git remote
origin

刪除倉庫中的某個文件或目錄

git rm --cache -r +目錄名   //--cache保證只會刪除遠程倉庫里的目錄,而不會影響本機的物理目錄土铺,-r是指遞歸刪除

關(guān)于permission denied的問題

這個問題貌似是只出現(xiàn)在在一臺機器上第一次登錄某一帳號時才會出現(xiàn)胶滋,需要添加ssh key,具體做法是:
先嘗試這個命令:

ssh -T git@github.com

如若未出現(xiàn)“.........success.....”字眼悲敷,則說明沒有ssh key究恤,進入~/.ssh目錄下,鍵入:

ssh -keygen

一路回車后德,最后把id_rsa.pub.file 復(fù)制粘貼到github帳號的new ssh就Ok了!

其他錯誤

如果出現(xiàn)did you run git update-server-info on the server? 或者 error: The requested URL returned error: 403 while accessing

修改~/.gitconfig

添加

[remote "origin"]
url = https://github.com/yourproject.git
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末部宿,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子瓢湃,更是在濱河造成了極大的恐慌理张,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,590評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件绵患,死亡現(xiàn)場離奇詭異雾叭,居然都是意外死亡,警方通過查閱死者的電腦和手機藏雏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評論 3 399
  • 文/潘曉璐 我一進店門拷况,熙熙樓的掌柜王于貴愁眉苦臉地迎上來作煌,“玉大人掘殴,你說我怎么就攤上這事∷谑模” “怎么了奏寨?”我有些...
    開封第一講書人閱讀 169,301評論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長鹰服。 經(jīng)常有香客問我病瞳,道長揽咕,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,078評論 1 300
  • 正文 為了忘掉前任套菜,我火速辦了婚禮亲善,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘逗柴。我一直安慰自己蛹头,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 69,082評論 6 398
  • 文/花漫 我一把揭開白布戏溺。 她就那樣靜靜地躺著渣蜗,像睡著了一般。 火紅的嫁衣襯著肌膚如雪旷祸。 梳的紋絲不亂的頭發(fā)上耕拷,一...
    開封第一講書人閱讀 52,682評論 1 312
  • 那天,我揣著相機與錄音托享,去河邊找鬼骚烧。 笑死,一個胖子當(dāng)著我的面吹牛闰围,可吹牛的內(nèi)容都是我干的止潘。 我是一名探鬼主播,決...
    沈念sama閱讀 41,155評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼辫诅,長吁一口氣:“原來是場噩夢啊……” “哼凭戴!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起炕矮,我...
    開封第一講書人閱讀 40,098評論 0 277
  • 序言:老撾萬榮一對情侶失蹤么夫,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后肤视,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體档痪,經(jīng)...
    沈念sama閱讀 46,638評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,701評論 3 342
  • 正文 我和宋清朗相戀三年邢滑,在試婚紗的時候發(fā)現(xiàn)自己被綠了腐螟。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,852評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡困后,死狀恐怖乐纸,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情摇予,我是刑警寧澤汽绢,帶...
    沈念sama閱讀 36,520評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站侧戴,受9級特大地震影響宁昭,放射性物質(zhì)發(fā)生泄漏跌宛。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,181評論 3 335
  • 文/蒙蒙 一积仗、第九天 我趴在偏房一處隱蔽的房頂上張望疆拘。 院中可真熱鬧,春花似錦寂曹、人聲如沸入问。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,674評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽芬失。三九已至,卻和暖如春匾灶,著一層夾襖步出監(jiān)牢的瞬間棱烂,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,788評論 1 274
  • 我被黑心中介騙來泰國打工阶女, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留颊糜,地道東北人。 一個月前我還...
    沈念sama閱讀 49,279評論 3 379
  • 正文 我出身青樓秃踩,卻偏偏與公主長得像衬鱼,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子憔杨,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,851評論 2 361

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

  • 1.git的安裝 1.1 在Windows上安裝Git msysgit是Windows版的Git鸟赫,從https:/...
    落魂灬閱讀 12,671評論 4 54
  • 以下內(nèi)容是我在學(xué)習(xí)和研究Git時,對Git操作的特性消别、重點和注意事項的提取抛蚤、精練和總結(jié),可以做為Git操作的字典寻狂,...
    科研者閱讀 4,147評論 4 50
  • 工作場合禁止吸煙岁经,能做到的都是紳士! 不知道從什么時候開始特別討厭抽煙和喝酒(除了甜甜的米酒I呷)缀壤,特別不愛聞煙味!...
    深小彤閱讀 912評論 2 4
  • 因為最近比較忙纠亚,今天開始我跟張紫琦說每天上學(xué)的早 中 晚我就不去接送她上學(xué)放學(xué)了塘慕,并告訴她路上注意安全,讓她自己走...
    張紫琦媽媽閱讀 180評論 0 0
  • 時間在走叁丧,年齡在長啤誊,懂得的多了岳瞭,看透的多了,快樂越來越少了蚊锹。不得不承認(rèn)瞳筏,時間改變了我很多,很多 …… 不知道從什么...
    酒濃情傷閱讀 1,322評論 0 1