GIT常用指令

由于git的使用通常伴隨著linux的常用指令,因此下面記得也有l(wèi)inux常用的操作摊溶,如果學(xué)習(xí)git確實(shí)應(yīng)該也學(xué)習(xí)下linux

  • mkdir 文件名 創(chuàng)建目錄
  • cd 目錄 用來定位目錄,這一點(diǎn)覺得比win要好很多充石,有時(shí)候一行代碼就能到達(dá)莫换。注意目錄之間的分割用/既是和問號(hào)在一起的那個(gè)鍵。我自己常常分不清/和\特來聲明一下骤铃。
  • ls 顯示當(dāng)前目錄下的文件夾拉岁。
    • ls -ah 顯示包括隱藏目錄
  • pwd 顯示當(dāng)前目錄
  • git init 把這個(gè)目錄變成git可以管理的倉(cāng)庫(kù)。
  • git add 文件名 把文件添加到倉(cāng)庫(kù)
  • git commit 把文件提交到倉(cāng)庫(kù)
    • git commit 相當(dāng)于快照惰爬。
    • git commit -m "提交聲明"
      注意喊暖,git commit 可以一次多次提交很多文件,故可以進(jìn)行以下的操作
$ git add file1.txt
$ git add file2.txt file3.txt
$ git commit -m "add 3 files."**
  • git status 用來查看當(dāng)前倉(cāng)庫(kù)的狀態(tài)
  • git diff 查看difference
  • git log 進(jìn)行查看歷史記錄(已經(jīng)commit)
    • 顯示的是從最近到最遠(yuǎn)
    • 如果嫌亂可以 git log --pretty=oneline
  • git reset 回退版本
    -git reset --hard HEAD HEAD表示當(dāng)前版本撕瞧,而HEAD表示上一個(gè)版本陵叽,同理HEAD^表示上上個(gè)版本狞尔,HEAD~100,是往上一百個(gè)版本的意思,也可以git reset --hard 版本號(hào)的前幾位巩掺。git reflog 用來記錄每一次的命令偏序。同樣可以查詢版本號(hào),以進(jìn)行恢復(fù)胖替。
  • 廖雪峰老師的圖?

前面講了我們把文件往Git版本庫(kù)里添加的時(shí)候研儒,是分兩步執(zhí)行的:第一步是用git add把文件添加進(jìn)去,實(shí)際上就是把文件修改添加到暫存區(qū)独令;
第二步是用git commit提交更改端朵,實(shí)際上就是把暫存區(qū)的所有內(nèi)容提交到當(dāng)前分支。
因?yàn)槲覀儎?chuàng)建Git版本庫(kù)時(shí)燃箭,Git自動(dòng)為我們創(chuàng)建了唯一一個(gè)master分支冲呢,所以,現(xiàn)在遍膜,git commit就是往master分支上提交更改碗硬。
你可以簡(jiǎn)單理解為,需要提交的文件修改通通放到暫存區(qū)瓢颅,然后恩尾,一次性提交暫存區(qū)的所有修改。

  • 使用git diff HEAD -- 文件名 查看工作區(qū)和版本庫(kù)里面最新的區(qū)別
  • git checkout -- 文件名 在提交之前可以使文件恢復(fù)到上一個(gè)階段挽懦,如果是還沒有添加到版本庫(kù)的暫存區(qū)翰意,即是修改后還沒有放進(jìn)暫存區(qū),現(xiàn)在撤銷就可以和版本庫(kù)一樣信柿,如果是已經(jīng)添加到版本庫(kù)冀偶,又做了修改現(xiàn)在撤銷修改就可以回到添加到暫存區(qū)后的狀態(tài)注意只能恢復(fù)一次
    • 如果是修改后還git add 到暫存區(qū)了,可以這樣做渔嚷,git reset HEAD 文件名 把暫存區(qū)的修改回退到工作區(qū)进鸠,然后再用git checkout -- 文件名 丟棄工作區(qū)的修改。
  • 刪除功能已經(jīng)add的文件如果被刪除了形病,如果你也想刪除客年,使用git rm 文件名 然后commit, 如果是誤刪想要恢復(fù),可以git checkout -- 文件名
  • github常用命令
    • ssh-krygen -t rsa -C "郵箱地址" 在用戶主目錄下看有沒有.ssh目錄漠吻,如果沒有量瓜,執(zhí)行上面命令
    • git push origin master 推送到github
      第一次推送用git push -u origin master
      以后用git push origin master
    • 從遠(yuǎn)端復(fù)制 git clone git@github.com:賬號(hào)名字/倉(cāng)庫(kù)名字.git
  • git branch branchname 創(chuàng)建分支
  • git checkout branchname 切換分支
  • git checkout -b file name 創(chuàng)建name分支并且切換到name分支
  • git branch 列出所有分支,并且在當(dāng)前分支做標(biāo)記途乃。
  • git checkout branchname 切換分支
  • git merge branchname 快速合并分支內(nèi)容到當(dāng)前分支绍傲。需是已經(jīng)commit過的
  • git branch -d branchname 刪除所需要?jiǎng)h除的分支
  • 如果遇到了分支和主分支都修改會(huì)遇到合并沖突的提示,這時(shí)打開沖突文件耍共,進(jìn)行修改再add commit即可
  • git log --graph --pretty=oneline --abbrev-commit 以圖象顯示分支及其運(yùn)行情況烫饼。
  • git merge --no-ff -m "comit" brachname 使用遞歸戰(zhàn)略進(jìn)行合并猎塞,會(huì)在log里面看到分支情況,而在fast forward 中是看不出合并的commit是在這種模式下合并會(huì)生成一個(gè)commit枫弟,而-m就是描述這種commit的


    分支策略意義
  • git stash 用來儲(chǔ)藏當(dāng)前的工作現(xiàn)場(chǎng)邢享,等以后恢復(fù)現(xiàn)場(chǎng)后繼續(xù)工作
    • 工作區(qū)的恢復(fù)可以用git stash apply 進(jìn)行恢復(fù),但是并不刪除stash淡诗,需要用git stash drop來刪除stash內(nèi)容
    • 同時(shí)恢復(fù)也有另一種方式骇塘,git stash pop,既是恢復(fù)的時(shí)候把stash的內(nèi)容刪除。
  • 強(qiáng)行刪除未合并的分支 git branch -D branch-name
  • 查看遠(yuǎn)程倉(cāng)庫(kù)的信息 git remote
    詳細(xì)信息 git remote -v
  • git push origin branchname 推送其他分支
  • dev分支是開發(fā)分支韩容,團(tuán)隊(duì)所有成員都要在上面工作款违,當(dāng)你的另一個(gè)小伙伴從遠(yuǎn)程庫(kù)clone時(shí),默認(rèn)情況下只能看到本地的master分支群凶,如果這位小伙伴要在dev上開發(fā)插爹,就必須創(chuàng)建遠(yuǎn)程origin的dev分支到本地,git checkout -b dev origin/dev
  • 從本地創(chuàng)建和遠(yuǎn)程分支對(duì)應(yīng)的分支 git checkout -b branchname origin/branchname
  • 從遠(yuǎn)程抓取分支 git pull
  • 使用git tag 標(biāo)簽名 在需要打分支的分支進(jìn)行打標(biāo)簽请梢,默認(rèn)標(biāo)簽是打在最新提交的commit上的赠尾。
    • 如果是忘了打標(biāo)簽,可以找到歷史提交的commit id然后打上就可以了毅弧,git log --pretty=oneline --abbrev-commit 然后git tag 標(biāo)簽 commit id
    • 注意標(biāo)簽不是按時(shí)間順序列出气嫁,而是按字母進(jìn)行排序,git show tagname
  • git tag 查看所有標(biāo)簽
  • 創(chuàng)建帶有說明的標(biāo)簽 用-a指定標(biāo)簽名够坐,-m指定說明文字 git tag -a tagname -m "message" commit id
  • 密鑰暫時(shí)空出
  • 刪除標(biāo)簽 git tag -d tagname
  • 推送某個(gè)標(biāo)簽到遠(yuǎn)程 git push origin tagname
    • git push origin --tags 一次性推送全部尚未推送到遠(yuǎn)程的本地標(biāo)簽
    • 如果想刪除已經(jīng)推送到遠(yuǎn)程的標(biāo)簽 先從本地刪除寸宵,然后從遠(yuǎn)程刪除,命令也是push git push origin :refs/tags/tagname
  • 如何參加開源項(xiàng)目元咙,可以在GitHub上fork就在克隆一個(gè)倉(cāng)庫(kù)梯影,然從自己的clone git clone git@github.com:usersname/repositoriesname.git **一定要從自己的賬號(hào)下克隆,這樣你才能修改庶香。平時(shí)的修改你可以往自己的倉(cāng)庫(kù)里面修改甲棍,如果你想官方接受你的修改,可以在github上發(fā)起一個(gè)pull request赶掖。
  • git 的日常配置救军,使用git config --global color.ui true
  • 配置別名 git config --global alias.st status 既是st以后表示成status
    先列舉幾種“偷懶”好方法
    st status
    co
    checkout
    cicommit
    br
    branch
    git reset HEAD file 可以把暫存區(qū)的修改撤銷掉(unstage)重新放回工作區(qū)這樣可以配置一個(gè)別名git config --global alias.unstage 'reset HEAD'
    把lg配置成了:
    git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
    廖老師的圖
  • --global參數(shù)是全局參數(shù),這些命令可以在所有的git倉(cāng)庫(kù)下使用
    注意倘零,這些配置文件都在.git/config 中的[alias]后面,要?jiǎng)h除別名戳寸,把對(duì)應(yīng)行刪除就好了
    '''
    $ cat .git/config
    [core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
    ignorecase = true
    precomposeunicode = true
    [remote "origin"]
    url = git@github.com:michaelliao/learngit.git
    fetch = +refs/heads/:refs/remotes/origin/
    [branch "master"]
    remote = origin
    merge = refs/heads/master
    [alias]
    last = log -1
    '''
    而當(dāng)前用戶的git配置文件放在用戶主目錄下的一個(gè)隱藏文件.gitconfig中
    '''
    $ cat .gitconfig
    [alias]
    co = checkout
    ci = commit
    br = branch
    st = status
    [user]
    name = Your Name
    email = your@email.com
    '''
    配置別名也可以直接修改這個(gè)文件呈驶,如果改錯(cuò)了,可以刪除文件重新進(jìn)行命令配置
  • git服務(wù)器暫時(shí)不展開

第一次結(jié)束線

參考廖雪峰的博客

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末疫鹊,一起剝皮案震驚了整個(gè)濱河市袖瞻,隨后出現(xiàn)的幾起案子司致,更是在濱河造成了極大的恐慌,老刑警劉巖聋迎,帶你破解...
    沈念sama閱讀 221,576評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件脂矫,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡霉晕,警方通過查閱死者的電腦和手機(jī)庭再,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,515評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來牺堰,“玉大人拄轻,你說我怎么就攤上這事∥昂” “怎么了恨搓?”我有些...
    開封第一講書人閱讀 168,017評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)筏养。 經(jīng)常有香客問我斧抱,道長(zhǎng),這世上最難降的妖魔是什么渐溶? 我笑而不...
    開封第一講書人閱讀 59,626評(píng)論 1 296
  • 正文 為了忘掉前任辉浦,我火速辦了婚禮,結(jié)果婚禮上掌猛,老公的妹妹穿的比我還像新娘盏浙。我一直安慰自己,他們只是感情好荔茬,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,625評(píng)論 6 397
  • 文/花漫 我一把揭開白布废膘。 她就那樣靜靜地躺著,像睡著了一般慕蔚。 火紅的嫁衣襯著肌膚如雪丐黄。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,255評(píng)論 1 308
  • 那天孔飒,我揣著相機(jī)與錄音灌闺,去河邊找鬼。 笑死坏瞄,一個(gè)胖子當(dāng)著我的面吹牛桂对,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播鸠匀,決...
    沈念sama閱讀 40,825評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼蕉斜,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起宅此,我...
    開封第一講書人閱讀 39,729評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤机错,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后父腕,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體弱匪,經(jīng)...
    沈念sama閱讀 46,271評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,363評(píng)論 3 340
  • 正文 我和宋清朗相戀三年璧亮,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了萧诫。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,498評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡杜顺,死狀恐怖财搁,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情躬络,我是刑警寧澤尖奔,帶...
    沈念sama閱讀 36,183評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站穷当,受9級(jí)特大地震影響提茁,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜馁菜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,867評(píng)論 3 333
  • 文/蒙蒙 一茴扁、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧汪疮,春花似錦峭火、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,338評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至盏道,卻和暖如春稍浆,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背猜嘱。 一陣腳步聲響...
    開封第一講書人閱讀 33,458評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工衅枫, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人朗伶。 一個(gè)月前我還...
    沈念sama閱讀 48,906評(píng)論 3 376
  • 正文 我出身青樓弦撩,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親论皆。 傳聞我的和親對(duì)象是個(gè)殘疾皇子益楼,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,507評(píng)論 2 359

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

  • Git常用命令總結(jié) Git常用命令總結(jié) git init 在本地新建一個(gè)repo,進(jìn)入一個(gè)項(xiàng)目目錄,執(zhí)行g(shù)it i...
    猿ape閱讀 238評(píng)論 0 1
  • git常用命令 GIT常用命令備忘:http://stormzhang.com/git/2014/01/27/gi...
    新篇章閱讀 8,491評(píng)論 1 26
  • 1) 遠(yuǎn)程倉(cāng)庫(kù)相關(guān)命令 檢出倉(cāng)庫(kù): 檢出倉(cāng)庫(kù): 直接檢出分支 2.0.0歧斟,指定遠(yuǎn)程倉(cāng)庫(kù)名稱為 github (默認(rèn)...
    gavinDu閱讀 389評(píng)論 0 0
  • 1.我們的相遇是彼此青春中最美好的邂逅俊扭。像春日的暖陽(yáng),在這個(gè)青春彼此溫暖坠陈,彼此守候萨惑,彼此成長(zhǎng)困乒。 我們的友誼始于初中...
    陌璃本無殤閱讀 1,166評(píng)論 7 7
  • 以后我當(dāng)老板了沮榜,我一定要多投資員工,而不是簡(jiǎn)單的吃喝玩樂晓铆,
    彩玲123閱讀 259評(píng)論 0 0