GIT 學習筆記 1 - HOW TO GIT

Git 的基本用法

設置姓名和地址

$ git config --global user.name "Your Name"
$ git config --global user.email "your_email@email.com"
  • 可以設置多用用戶,就不要用--global,具體用法以后在研究。

提高可讀性

$ git config --global color.ui auto

Mac OSX 上的vim設置

$ git config --global core.editor /usr/bin/vim -f
  • 如不設置會報錯:"There was a problom with the editor 'vi'."

設置 SSH Key

$ ssh-keygen -t rsa -C "your_email@email.com"
$ cat ~/.ssh/id_rsa.pub
# 把id_rsa.pub內容添加到github.com
# 然后測試
$ ssh -T git@github.com

初始化倉庫

$ mkdir git-tutorial
$ cd git-tutorial
$ git init

查看倉庫的狀態

$ git status

十分常用,務必牢記!

向暫存區中添加文件

$ git add <file>
$ git status   # 查看發生的變化

保存倉庫的歷史記錄

$ git commit -m "First commit"

git add 和 git commit 可以合拼成如下命令:

$ git commit -am "Your commit"
  • -m 參數后加“提交信息”
  • 不加參數可以記述詳細提交信息,格式如下:

第一行簡述內容
第二行空行
第三行以后,記述更改的原因和詳細內容

查看提交日志

$ git log
$ git log --pretty-short  # 只顯示簡述
$ git log <path|file>     # 只顯示指定目錄或文件
$ git log -p              # 顯示提交前后差異
$ git log -p <file>       # 只顯示改文件的差異

查看更改前后的差別

$ git diff
$ git diff HEAD           # 查看工作樹和最新提交的差別
  • 養成良好習慣:在執行git commit 之前先執行 git diff HEAD 查看本次提交與上次提交的差別。
  • HEAD 時指向當前分支中最新一次提交的指針。

顯示分支一覽表

$ git branch
\* master
   feature-A
  • 帶‘*’號表示當前分支

創建、切換分支

$ git checkout -b <branch_name>

也可以分開成兩個命令:

$ git branch <branch_name>      # 創建分支
$ git checkout <branch_name>    # 切換分支
$ git checkout -                # 切換回上一個分支

合并分支

$ git merge --no-ff <branch_name>
  • 為了在歷史記錄中明確記錄下本次分支合并,需要創建合并提交,合并時加上參數--no-ff。

以圖表形式查看分支

$ git log --graph
  • 可以以圖片形式輸出提交日志,非常直觀,務必牢記

回溯歷史版本

$ git reset
$ git reset --hard <HASH>
  • 要讓倉庫的HEAD、暫存區、當前工作樹回溯到指定狀態,需要用到git reset --hard
  • 只要提供目標時間點的哈希值。

推進歷史狀態

$ git reflog
$ git reset --hard <HASH>
  • git reflog 查看當前倉庫執行過得操作日志
  • 即便開發者錯誤執行了git 的操作,基本也可以利用git reflog來恢復到原先的狀態。

消除沖突

README.md

# git-toturial

<<<<<<<< HEAD
    - feature-A
========
    - fix-B
>>>>>>>> fix-B
  • =========以上部分是當前HEAD的內容,以下部分是要合并的fix-B分支的內容。

修改提交信息

$ git commit --amend

壓縮歷史

$ git rebase -i
$ git rebase -i HEAD~2  # 最新的兩次歷史
  • pick改成fixup,原來的pick部分就會從歷史中抹去。
  • 一般用于拼寫錯誤等小修改。

推送至遠程倉庫

在github上新建一個倉庫。倉庫名最好與本地倉庫保持一致。

  • 創建時不要勾選README選項,因為github自動生成的README文件與本地倉庫失去了整合性。

添加遠程倉庫

$ git remote add origin git@github.com:<username>/<repository_name>.git
  • 執行上述命令后,git會自動將遠程倉庫的名稱設置成origin

推送至master分支

$ git push -u origin master
  • -u 參數可以在推送的同時,將origin倉庫的master分支設置為本地倉庫當前分支的upstream(上游)。
  • 添加了這個參數,將來運行git pull從遠程倉庫獲取內容時,本地倉庫的這個分支就可以直接從origin的master分支獲取內容,省去了另外添加參數的麻煩。

推送至master以外的分支

$ git checkout <branch_name>
$ git push -u origin <branch_name>
  • 這樣就可以把分支push給遠程倉庫并保持分支名稱不變。

從遠程倉庫獲取

$ git clone git@github.com:<username>/<repository_name>.git

查看當前分支的相關信息

$ git branch -a
  • -a 參數可以同時顯示本地倉庫和遠程倉庫的分支信息。

獲取遠程的分支

$ git checkout -b <branch_name> origin/<branch_name>
  • -b 參數后是本地倉庫中新建分支的名稱。
  • 再后面是獲取來源的分支名稱。

獲取最新的遠程倉庫分支

$ git pull origin <branch_name>
  • 這樣就可以將本地<brach_name>的分支更新到最新狀態。

備注

$ git config --global push.defalt matching
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 1. 安裝 Github 查看是否安裝git: $ git config --global user.name "...
    Albert_Sun閱讀 13,721評論 9 163
  • Git是目前最流行的版本管理系統,也是最先進的分布式版本控制系統(distributed version cont...
    pro648閱讀 5,790評論 1 17
  • 1、可能有人會說,當然是采購厲害!現在是買方市場,不管三七二十一,、先砍他 一刀,不行就買別人的,所以那些銷售都拼...
    勁祥閱讀 2,504評論 0 0
  • 這雨算是除舊的吧,下雨啥都阻下了;在被窩里躺了半天尸。過一天泡面生活,聽了一下午歌。給媽媽打了電話。 我已經很努力...
    司馬蒙遜閱讀 129評論 0 1
  • 睡不著,哈兒。 今天,你又沒有理我,我又開始慌了,心情和上幾次你不理我的時候是一樣的。 不會又有啥子事情要發生哈!...
    xiao錢錢閱讀 281評論 0 0