GIT學(xué)習(xí)總結(jié)

昨天開始學(xué)習(xí)git,摸索一天,記下若干要點(diǎn)位隶,權(quán)當(dāng)學(xué)習(xí)筆記,以備查漏補(bǔ)缺开皿。

  • GIT配置

  1. ** 安裝 **
    windows版:https://git-for-windows.github.io

  2. ** 創(chuàng)建版本庫 **
    創(chuàng)建版本庫后涧黄,倉庫里的文件才能被GIT管理跟蹤起來。

-  首先創(chuàng)建新的空文件
   ```
      $ mkdir gitPro            // 默認(rèn)為安裝目錄赋荆,可輸入自定義目錄名笋妥,如 $ mkdir E://gitPro,
      $ cd gitPro             // $ cd E://gitPro
      $ pwd                       // pwd命令用于顯示當(dāng)前目錄

   ```
  
-  然后通過 `git init ` 命令創(chuàng)建,目錄下會生成 `.git` 的目錄窄潭,用來跟蹤管理版本庫春宣。
     ```
     $ git init 

     ```
-  也可以右鍵單擊文件,選擇 ` Git Bash Here `,然后同樣輸入`git init `命令創(chuàng)建月帝。以后其他命令也可以這樣操作躏惋。

 - 命令 `git add` 把文件添加至?xí)捍鎱^(qū)
    提交單個(gè)文件時(shí) `git add <file>`,空格隔開輸入多個(gè)文件名嚷辅,可同時(shí)提交多個(gè)文件 ;批量提交時(shí)一般使用 `git add . `簿姨,`git add -u` , `git add -A` 這三個(gè)命令簸搞。 區(qū)別在于:
    -  `git add .` 提交所有變化扁位,包括文件內(nèi)容修改以及新文件,但不包括被刪除的文件趁俊。也就是說只添加修改域仇,不刪除已a(bǔ)dd文件。
   -  `git add -u` 剛好相反则酝,僅監(jiān)控已a(bǔ)dd文件殉簸,不會提交新文件。
   -  `git add -A` 集合上述兩者功能沽讹,為 `git add --all` 縮寫般卑。
 - 命令 `git commit -m` 將暫存區(qū)文件提交至倉庫
    注:-m 后接提交說明,為方便知悉版本更迭及修改情況爽雄,不可省略蝠检!
  1. ** 與GitHub關(guān)聯(lián) **

    • 創(chuàng)建本地SSH Key:
      $ ssh-keygen -t rsa -C "youremail@example.com",后面換成自己的郵箱挚瘟,然后一路回車叹谁。打開.ssh文件夾下的 id_rsa.pub,一般路徑為 C:\Users\Administrator\.ssh乘盖。注意不要用系統(tǒng)筆記本打開編輯文本文件焰檩,可以用sublime text打開,復(fù)制订框。
    • 關(guān)聯(lián)SSH Key:
      登錄GitHub析苫,點(diǎn)擊右上角頭像邊的下拉三角,打開Settings穿扳,SSH and GPG keys頁面衩侥。然后,點(diǎn)"New SSH Key",填寫標(biāo)題,將復(fù)制的SSH粘貼進(jìn)去刚盈,點(diǎn)擊提交。
      如果有多臺設(shè)備弧腥,需各在不同設(shè)備上添加關(guān)聯(lián)SSH驻龟。
    • 配置本地用戶和郵箱
      git config --global user.name "userName" //設(shè)置用戶名 git config --global user.email "email" //設(shè)置郵箱
  2. ** 從本地添加到遠(yuǎn)程庫 **
    在本地創(chuàng)建Git倉庫后看杭,可將本地倉庫內(nèi)容提交至GitHub倉庫慨绳。

    • 首先骨杂,在GitHub上創(chuàng)建新的倉庫涂身,輸入倉庫名,與本地倉庫統(tǒng)一搓蚪。點(diǎn)進(jìn)新建好的倉庫,點(diǎn)擊 Clone or download 按鈕丁鹉,復(fù)制SSH妒潭。
    • 然后,在本地倉庫下輸入以下命令揣钦,這里需右鍵倉庫文件夾選擇Git Bash Here
      $ git remote add origin XXX
      將XXX替換成剛才復(fù)制的SSH雳灾,回車。遠(yuǎn)程庫的名字默認(rèn)為 origin
    • 最后冯凹,把本地庫的所有內(nèi)容推送到遠(yuǎn)程庫上谎亩,用 git push 命令:
      $ git push -u origin master
      由于遠(yuǎn)程庫是空的,第一次推送master分支時(shí)宇姚,須加上-u參數(shù)匈庭,Git不但會把本地的master分支內(nèi)容推送的遠(yuǎn)程新的master分支,還會把本地的master分支和遠(yuǎn)程的master分支關(guān)聯(lián)起來浑劳,在以后的推送或者拉取時(shí)就可以簡化命令阱持。
      以后,只要本地作了提交魔熏,就可以通過命令 $ git push origin master 提交衷咽。
  3. ** 從遠(yuǎn)程庫克隆到本地 **
    一般從零開發(fā)先創(chuàng)建遠(yuǎn)程庫,然后從遠(yuǎn)程庫克隆到本地

    • 首先蒜绽,一樣在GitHub創(chuàng)建新倉庫镶骗,記得勾選 Initialize this repository with a README,這樣GitHub會自動為我們創(chuàng)建一個(gè)README.md文件躲雅。創(chuàng)建完畢后鼎姊,就可以看到README.md文件,可以在此文件中編輯項(xiàng)目信息吏夯。
    • 然后在本地文件庫打開Git bush此蜈,輸入命令 $ git clone XXX ,XXX換成自己的SSH地址噪生。
  • 常用命令

    摘錄Git常用命令:

    Git常用命令速查表
        Git命令參考手冊
    

git init # 初始化本地git倉庫(創(chuàng)建新倉庫)
git config --global user.name "xxx" # 配置用戶名
git config --global user.email "xxx@xxx.com" # 配置郵件
git config --global color.ui true # git status等命令自動著色
git config --global color.status auto
git config --global color.diff auto
git config --global color.branch auto
git config --global color.interactive auto
git clone git+ssh://git@192.168.53.168/VT.git # clone遠(yuǎn)程倉庫
git status # 查看當(dāng)前版本狀態(tài)(是否修改)
git add xyz # 添加xyz文件至index
git add . # 增加當(dāng)前子目錄下所有更改過的文件至index
git commit -m 'xxx' # 提交
git commit --amend -m 'xxx' # 合并上一次提交(用于反復(fù)修改)
git commit -am 'xxx' # 將add和commit合為一步
git rm xxx # 刪除index中的文件
git rm -r * # 遞歸刪除
git log # 顯示提交日志
git log -1 # 顯示1行日志 -n為n行
git log -5git log --stat # 顯示提交日志及相關(guān)變動文件
git log -p -m git show dfb02e6e4f2f7b573337763e5c0013802e392818 # 顯示某個(gè)提交的詳細(xì)內(nèi)容
git show dfb02 # 可只用commitid的前幾位
git show HEAD # 顯示HEAD提交日志
git show HEAD^ # 顯示HEAD的父(上一個(gè)版本)的提交日志 ^^為上兩個(gè)版本 ^5為上5個(gè)版本
git tag # 顯示已存在的tag
git tag -a v2.0 -m 'xxx' # 增加v2.0的tag
git show v2.0 # 顯示v2.0的日志及詳細(xì)內(nèi)容
git log v2.0 # 顯示v2.0的日志
git diff # 顯示所有未添加至index的變更
git diff --cached # 顯示所有已添加index但還未commit的變更
git diff HEAD^ # 比較與上一個(gè)版本的差異
git diff HEAD -- ./lib # 比較與HEAD版本lib目錄的差異
git diff origin/master..master # 比較遠(yuǎn)程分支master上有本地分支master上沒有的
git diff origin/master..master --stat # 只顯示差異的文件裆赵,不顯示具體內(nèi)容
git remote add origin git+ssh://git@192.168.53.168/VT.git # 增加遠(yuǎn)程定義(用于push/pull/fetch)
git branch # 顯示本地分支
git branch --contains 50089 # 顯示包含提交50089的分支
git branch -a # 顯示所有分支
git branch -r # 顯示所有原創(chuàng)分支
git branch --merged # 顯示所有已合并到當(dāng)前分支的分支
git branch --no-merged # 顯示所有未合并到當(dāng)前分支的分支
git branch -m master master_copy # 本地分支改名
git checkout -b master_copy # 從當(dāng)前分支創(chuàng)建新分支master_copy并檢出
git checkout -b master master_copy # 上面的完整版
git checkout features/performance # 檢出已存在的features/performance分支
git checkout --track hotfixes/BJVEP933 # 檢出遠(yuǎn)程分支hotfixes/BJVEP933并創(chuàng)建本地跟蹤分支
git checkout v2.0 # 檢出版本v2.0
git checkout -b devel origin/develop # 從遠(yuǎn)程分支develop創(chuàng)建新本地分支devel并檢出
git checkout -- README # 檢出head版本的README文件(可用于修改錯誤回退)
git merge origin/master # 合并遠(yuǎn)程master分支至當(dāng)前分支
git cherry-pick ff44785404a8e # 合并提交ff44785404a8e的修改
git push origin master # 將當(dāng)前分支push到遠(yuǎn)程master分支
git push origin :hotfixes/BJVEP933 # 刪除遠(yuǎn)程倉庫的hotfixes/BJVEP933分支
git push --tags # 把所有tag推送到遠(yuǎn)程倉庫
git fetch # 獲取所有遠(yuǎn)程分支(不更新本地分支,另需merge)
git fetch --prune # 獲取所有原創(chuàng)分支并清除服務(wù)器上已刪掉的分支
git pull origin master # 獲取遠(yuǎn)程分支master并merge到當(dāng)前分支
git mv README README2 # 重命名文件README為README2
git reset --hard HEAD # 將當(dāng)前版本重置為HEAD(通常用于merge失敗回退)
git rebase git branch -d hotfixes/BJVEP933 # 刪除分支hotfixes/BJVEP933(本分支修改已合并到其他分支)
git branch -D hotfixes/BJVEP933 # 強(qiáng)制刪除分支hotfixes/BJVEP933
git ls-files # 列出git index包含的文件
git show-branch # 圖示當(dāng)前分支歷史
git show-branch --all # 圖示所有分支歷史
git whatchanged # 顯示提交歷史對應(yīng)的文件修改
git revert dfb02e6e4f2f7b573337763e5c0013802e392818 # 撤銷提交dfb02e6e4f2f7b573337763e5c0013802e392818
git ls-tree HEAD # 內(nèi)部命令:顯示某個(gè)git對象
git rev-parse v2.0 # 內(nèi)部命令:顯示某個(gè)ref對于的SHA1 HASH
git reflog # 顯示所有提交跺嗽,包括孤立節(jié)點(diǎn)
git show HEAD@{5} git show master@{yesterday} # 顯示master分支昨天的狀態(tài)
git log --pretty=format:'%h %s' --graph # 圖示提交日志
git show HEAD~3git show -s --pretty=raw 2be7fcb476 git stash # 暫存當(dāng)前修改战授,將所有至為HEAD狀態(tài)
git stash list # 查看所有暫存
git stash show -p stash@{0} # 參考第一次暫存
git stash apply stash@{0} # 應(yīng)用第一次暫存
git grep "delete from" # 文件中搜索文本“delete from”
git grep -e '#define' --and -e SORT_DIRENT git gc git fsck


- ### 一些問題 ###
- 文件或文件夾重命名:
    直接在本地重命名后页藻,輸入命令 `git add -A` ,然后 commit 并 push 遠(yuǎn)程庫植兰,完成后遠(yuǎn)程庫文件或文件夾名便已更改份帐。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市楣导,隨后出現(xiàn)的幾起案子废境,更是在濱河造成了極大的恐慌,老刑警劉巖筒繁,帶你破解...
    沈念sama閱讀 212,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件噩凹,死亡現(xiàn)場離奇詭異,居然都是意外死亡毡咏,警方通過查閱死者的電腦和手機(jī)驮宴,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來呕缭,“玉大人堵泽,你說我怎么就攤上這事』肿埽” “怎么了迎罗?”我有些...
    開封第一講書人閱讀 158,369評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長离熏。 經(jīng)常有香客問我佳谦,道長,這世上最難降的妖魔是什么滋戳? 我笑而不...
    開封第一講書人閱讀 56,799評論 1 285
  • 正文 為了忘掉前任钻蔑,我火速辦了婚禮,結(jié)果婚禮上奸鸯,老公的妹妹穿的比我還像新娘咪笑。我一直安慰自己,他們只是感情好娄涩,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,910評論 6 386
  • 文/花漫 我一把揭開白布窗怒。 她就那樣靜靜地躺著,像睡著了一般蓄拣。 火紅的嫁衣襯著肌膚如雪扬虚。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,096評論 1 291
  • 那天球恤,我揣著相機(jī)與錄音辜昵,去河邊找鬼。 笑死咽斧,一個(gè)胖子當(dāng)著我的面吹牛堪置,可吹牛的內(nèi)容都是我干的躬存。 我是一名探鬼主播,決...
    沈念sama閱讀 39,159評論 3 411
  • 文/蒼蘭香墨 我猛地睜開眼舀锨,長吁一口氣:“原來是場噩夢啊……” “哼岭洲!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起坎匿,我...
    開封第一講書人閱讀 37,917評論 0 268
  • 序言:老撾萬榮一對情侶失蹤盾剩,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后替蔬,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體彪腔,經(jīng)...
    沈念sama閱讀 44,360評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,673評論 2 327
  • 正文 我和宋清朗相戀三年进栽,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片恭垦。...
    茶點(diǎn)故事閱讀 38,814評論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡快毛,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出番挺,到底是詐尸還是另有隱情唠帝,我是刑警寧澤,帶...
    沈念sama閱讀 34,509評論 4 334
  • 正文 年R本政府宣布玄柏,位于F島的核電站襟衰,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏粪摘。R本人自食惡果不足惜瀑晒,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,156評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望徘意。 院中可真熱鬧苔悦,春花似錦、人聲如沸椎咧。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽勤讽。三九已至蟋座,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間脚牍,已是汗流浹背向臀。 一陣腳步聲響...
    開封第一講書人閱讀 32,123評論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留莫矗,地道東北人飒硅。 一個(gè)月前我還...
    沈念sama閱讀 46,641評論 2 362
  • 正文 我出身青樓砂缩,卻偏偏與公主長得像,于是被迫代替她去往敵國和親三娩。 傳聞我的和親對象是個(gè)殘疾皇子庵芭,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,728評論 2 351

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

  • 1. 安裝 Github 查看是否安裝git: $ git config --global user.name "...
    Albert_Sun閱讀 13,648評論 9 163
  • Git for windows 本文只是自己的一些學(xué)習(xí)總結(jié),方便自己查看雀监,如果對您閱讀不適双吆,抱歉!;崆啊好乐! 常用命令(...
    Lxs_597閱讀 332評論 0 0
  • 在高一緊張的學(xué)業(yè)中,我還是決定去旅游一趟讓自己疲憊的身心得以放松瓦宜! 一蔚万,出發(fā)了 路上的人還很稀少,乘著車临庇,聽...
    戩痕閱讀 413評論 0 0
  • 東望遠(yuǎn)樹輕如煙反璃,一泓春水波瀲滟。 幾點(diǎn)桃花迎風(fēng)鬧假夺,搖活前川數(shù)重山淮蜈。 山含春意催花色,風(fēng)帶柔情撥柳弦已卷。 人間二月芳菲...
    依依原上草閱讀 412評論 2 3
  • 1 你知道梧田,我想去的地方不僅僅是沙漠,西雙版納也是其中之一侧蘸。 當(dāng)然裁眯,西雙版納吸引我的無非是奇特的風(fēng)景。世界上吸引人...
    愛佛僧閱讀 1,077評論 8 6