git 基本操作

前沿:
1. 本文是學習 廖雪峰git教程 時的一些筆記,大家想看詳細版請閱讀廖雪峰git教程
2.本文中使用到的系統版本為windows10

一. 安裝git

  1. 下載安裝程序 -->國內鏡像

  2. 安裝

  3. 安裝完成,在開始菜單中打開Git --> Git Bash

  4. 在打開的窗口中輸入配置信息

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

二. 創建版本庫

相關知識點:
此處用到一些命令行語句mkdir git-->創建一個名字為git的文件夾;cd git-->進入git文件夾 pwd-->查看當前所在位置

  1. 創建gitlearn文件夾作為版本庫保存地址(請確保地址沒有中文)
$ mkdir gitlearn
$ cd gitlearn
$ pwd
/Users/michael/gitlearn
  1. 初始化版本庫
$ git init
Initialized empty Git repository in /Users/michael/gitlearn/.git/

三. 版本庫文件的增刪改查與版本選擇

相關知識點:
1. 工作區:當前的gitlearn文件夾即為一個工作區
2. 版本庫:gitlearn文件夾中隱藏的.git 目錄為版本庫(其不算工作區的內容)
3. 暫存區:.git目錄里面的stage文件(或者時index文件)
4. 暫存區存放的時add命令添加的文件,通過commit命令提交更改后,暫存區的內容就被提交到當前分支

  1. 新增文件

    1. 將文件放入gitlearn文件夾下(一定要是這個文件夾下,不然git會找不到文件)
      兩種方法
      • 將編輯好的文件直接放入gitlearn文件夾下
      • 使用vim readme.txt 創建一個readme.txt文件并可以直接編輯文本內容,編輯完成后按esc,:,然后鍵入wq即可保存文件并跳出vim模式進入ex模式
    2. 使用git add命令
    $ git add readme.txt
    
    1. 使用git commit命令
    $ git commit -m "wrote a readmw file"    /*-m 后面輸入的是本次提交的說明*/
    

    如果希望一次性添加多個文件可以使用以下命令

    $ git add file1.txt
    $ git add file2.txt file3.txt
    $ git commit -m "add 3 files."
    
  2. 文件修改
    需要git addgit commit命令,與添加文件操作一樣

  3. 文件查詢

/*相關命令*/
git status  -->倉庫當前的狀態
git diff   -->當前版本與上次提交的版本之間的不同
git log  -->歷史提交版本信息
git reflog -->歷史版本操作記錄
  1. 文件刪除

    1. 使用git rm命令(或者直接在工作區中將文件刪除)
    $ git rm readme.txt
    
    1. 使用git commit命令
    $ git commit -m "remove readme.txt"    
    
  2. 撤銷修改

    1. 還未add的修改撤銷(需要撤銷修改的文件還沒有放到暫存區)
    /*撤銷`readme.txt`的修改(-- 很重要,而且前后都要有空格)*/
    $ git checkout -- readme.txt 
    
    1. 已經add但是還沒有commit的修改撤銷
    /*將暫存區對readme.txt的修改退回到工作區*/
    $ git reset HEAD readme.txt
    /*撤銷工作區中`readme.txt`的修改*/
    $ git checkout -- readme.txt 
    
    1. 已經commit的修改撤銷(提交到本地庫)
    /*退回到上個版本*/
    $ git reset --hard HEAD^
    
    1. 已經推送到遠程版本庫
      無法在本地撤銷!!!
  3. 版本選擇

    • $ git reset --hard HEAD^ -->退回上個版本
    • $git reset --hard 1094a -->退回到版本號中帶有1094a的版本(通常都是版本號前幾位數字)

四. 遠程版本庫

創建遠程版本庫的目的是為了備份,同時充當主機服務器的作用

  1. 創建(使用github作為遠程倉庫)

    1. 創建SSH key(使用Git Bash)
    /*使用以下命令然后一路回車(默認無密碼)*/
    $ ssh-keygen -t rsa -C "youremail@example.com"
    

    以上操作成功后,在用戶主目錄里面找到.ssh目錄,里面有id_rsaid_rsa.pub兩個文件,這兩個就是SSH Key的秘鑰對,id_rsa是私鑰,不能泄露出去,id_rsa.pub是公鑰,可以放心地告訴任何人

    1. 登錄github,打開“Account settings”,“SSH Keys”頁面;點“Add SSH Key”,填上任意Title,在Key文本框里粘貼id_rsa.pub文件的內容;然后點擊“Add Key”,完成!
  2. 將本地庫推送到遠程庫

    1. 創建新git庫
      登錄github,Create a new repository
    2. 復制git庫SSH地址 git@github.com:kyle-yangkai/gitlearnning.git(也可以使用https地址)然后輸入命令
      $ git remote add origin git@github.com:kyle-yangkai/gitlearnning.git
      
    3. 將本地庫所有內容推送到遠程庫中
      $ git push -u origin master  /*-u只需要第一次推送的時候使用 如果要推送到遠程的dev分支就將master換成dev*/
      
    4. 新建遠程分支
      $ git push origin <當前分支>:<新分支名>
      
    5. 刪除遠程分支(兩種方法)
      • $ git push origin :<name> -->推送空分支到遠程分支
      • $ git push origin --delete <name> -->直接刪除遠程分支
  3. 從遠程庫克隆到本地庫

$ git clone git@github.com:kyle-yangkai/gitlearnning.git

五. 分支管理

  1. 一次完整的分支操作

    /*相關命令*/
    $ git branch -->查看分支
    $ git branch -d <name> -->刪除分支 (如果沒有合并過請使用 -D 強制刪除)
    $ cat readme.txt --> 查看readme.txt中的內容
    $ git branch <name> -->創建分支
    $ git checkout <name> -->切換到分支
    $ git checkout -b <name> --> 創建 并切換分支
    $ git merge <name> --no--ff --> 合并分支到當前分支( --no--ff 為普通模式合并,不加該參數則為快速合并,      歷史沒有該合并記錄)
    $ git branch -d <name> --> 刪除分支
    
    1. 創建分支
    /*git checkou 命令加上 -b 表示創建并切換 相當于$ git branch dev,  git checkout dev這兩條命令  */
    $ git checkout -b dev
    
    1. 修改分支內容并提交(同上面版本庫文件修改步驟)
    2. 切換回master分支并將dev分支的內同合并到master
    $ git merge dev
    
    1. 刪除dev分支
    $ git branch -d dev
    

    注意:
    1. 各分支之間其實沒有任何差別,任何分支都可以稱為主分支,我們一般默認master分支為主分支,最終版本都會合并到master分支中
    2. 如果兩個分支在同一個文件中都做了不同的修改,那么此時合并操作不會完成,我們需要手動修改該文件,通過$ git status查詢沖突文件,然后通過$ cat <file>查看沖突內容,修改完成后再進行合并操作

  2. bug分支處理

    /*相關命令*/
    $ git stash-->保存當前還未提交的工作狀態,恢復到最近一次提交的狀態
    $ git stash list --> 查看當前stash保存的狀態列表
    $ git stash apply --> 恢復上次stash保存的狀態
    $ git stash pop -->恢復上次stash保存的狀態并刪除該次stash狀態
    $ git stash drop --> 刪除上次保存的狀態
    $ git merge <name> --no-ff --> 合并分支到當前分支( --no-ff 為普通模式合并,不加該參數則為快速合并,      歷史沒有該合并記錄)
    $ git branch -d <name> --> 刪除分支
    
    1. 使用git add -A暫存當前dev分支新修改和新增的還不能提交的內容
    2. 使用git stash保存當前狀態
    3. 確定需要修復的分支,如果是maste分支,先返回到master分支
    4. 創建issue-001分支,完成修復不過的代碼提交
    5. 通過master合并完成bug修復
    6. 返回dev分支通過$ git stash apply恢復之前的狀態,急需工作

六. 標簽管理

  1. 創建標簽
    • $ git tag v1.0 --> 給當前分支打標簽v1.0 該標簽默認搭載最新提交的commit上面
    • $ git tag v0.9 f24sweq -->給commit id是f24sweq的提交打上標簽v0.9
    • $ git tag -a v0.1 -m "explain" f24sweq -->-a為標簽名 -m為說明文字
  2. 查看標簽
    • $ git show v0.1 -->查看該標簽的說明文字
  3. 操作標簽
    1. 本地標簽操作
      • $ git tag -d v0.1 -->刪除本地v0.1標簽
    2. 遠程標簽操作
      • $ git push origin v1.0 -->將v1.0標簽推送到遠程
      • $ git push origin --tags -->推送所有本地標簽到遠程
      • $ git push origin :refs/tags/v0.9 --> 刪除遠程v0.9標簽

七. 自定義Git

  1. 忽略特殊文件
  2. 配置別名
    • 全局配置 $ git config --global alias.<自定義命令> <git命令> 例子-->$ git config --global alias.ci commit
    • 當前倉庫配置 --> 每個倉庫的Git配置文件都放在.git/config文件中,在該文件中加上以下內容
    [alias]
      co = checkout
      ci = commit
      br = branch
      st = status
    
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,619評論 6 539
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,155評論 3 425
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,635評論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,539評論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,255評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,646評論 1 326
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,655評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,838評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,399評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,146評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,338評論 1 372
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,893評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,565評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,983評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,257評論 1 292
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,059評論 3 397
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,296評論 2 376

推薦閱讀更多精彩內容

  • 1.git的安裝 1.1 在Windows上安裝Git msysgit是Windows版的Git,從https:/...
    落魂灬閱讀 12,689評論 4 54
  • Git常用語法 [TOC] Git簡介 描述 ? Git(讀音為/g?t/。)是一個開源的分布式版本控制系統,...
    君惜丶閱讀 3,565評論 0 13
  • 1. 安裝 Github 查看是否安裝git: $ git config --global user.name "...
    Albert_Sun閱讀 13,692評論 9 163
  • 安裝Git: $ git config --global user.name "Your Name" $ git ...
    云呆呆閱讀 299評論 0 0
  • 感謝乖乖一直鼓勵我支持我,以及指出我沮喪消極的弱點。也求主幫助我能夠靠主剛強,更加勇敢。 看完「驢得水」,我深知上...
    NCNeverland閱讀 217評論 0 0