Git進階學習筆記
好久好久之前,入門學習了一下Git
,基本上可以使用Git
在Github
上push
自己的程式碼,並且clone
一下別人的專案。本以為這就能夠滿足我的日常需求了,但是隨著學習以及使用的複雜性,發現那些基礎的命令不能再滿足我的日常使用了,於是最近在看《pro Git》一書, 希望能更深入的學習一下Git
這個工具,工欲善其事,必先利其器。
1. git config
配置
剛開始使用Git的時候,很多人肯定都忽略配置的相關內容。也許你還記的在第一次push
內容的時候,總會有提示讓你設定你的使用者名稱以及郵箱。其實這就是最基本的一個配置。
git config --list
可以檢視目前git倉庫中有哪些配置。那麼另外一個問題來了,Linux中有個觀點是:『一切皆檔案』,這些配置從哪裡來的?共有3個地方設定,分別是系統級的、使用者級的以及倉庫級的。
/etc/gitconfig
系統級的配置,系統中所有的git
倉庫都普遍適用的配置。使用git config --system
來寫入;如:
git config --system user.name pengloo53
注意:配置檔案不一定是
/etc/gitconfig
,去你的git安裝的目錄下去找。怎麼找?Linux和Mac使用者可以使用which git
找到git
的所在地,然後就好找了,比如我的git
的系統配置檔案在/usr/local/etc/gitconfig
下。我的Mac是通過homebrew
安裝的git
。如果是Windows系統,去安裝目錄下找就OK了。~/.gitconifg
使用者級的配置,該使用者下所有的git
倉庫都普遍適用的配置。使用git config --globe
來寫入;如:
git config --globe user.email aa@xxx.com
.git/config
倉庫級的配置,只針對某個倉庫而言的配置。在倉庫目錄下直接git config
來寫入配置。
如果我很無聊,分別使用git config --system user.name name_1
、git config --globe user.name name_2
以及git config user.name name_3
設定了我的使用者名稱,那麼推送訊息的時候到底記錄的是哪個呢?這裡不用擔心,git
會一級一級覆蓋的,也就是會顯示最小範圍的那個級別。如果有相同的配置存在,最終會顯示倉庫級的那個配置。
2. git commit
提交
這個命令可真是熟悉得不能再熟悉了,每次git add --all
都要習慣性的git commit -m "message"
一下,message
是一定要寫的,Git預設也是要你寫的,這是個好習慣,一定要堅持下去。反正我都習慣了,不寫-m
都覺得奇怪了。
當然保留好的習慣的時候,該偷懶也得偷懶一下。可以嘗試git commit -a -m "message"
將git add --all
和git commit -m 'message"
合併一塊寫,我相信你會更爽的。
如果一不小心,message
寫成了meaasge
,雖然不是啥大事,但是對於一個『強迫症』來說,那叫個難受。沒事,試一下git commit --amend
修改提交文字。
再如果commit
之前忘了add
某些檔案了,想一塊commit
進來,沒關係。
git add --all
git commit --amend
這樣就不用產生兩條提交資訊了。
3. git show
檢視
在入門的常用命令的筆記裡,通過git show v1.0
可以檢視標籤資訊,然而它還可以檢視每次的提交資訊,可能這並不是什麼進階知識,但是對我來說還是比較新鮮的,就記在這裡吧。
當你想檢視之前某個的提交改了些啥玩意的時候,那麼git show
就大有用處了。先通過git log --graph --pretty=oneline --abbrev-commit
檢視一下自己的分支資訊,然後git show commitID
就可以了。當然你不用寫下全部的commitID
,寫前4位就行了。
如:git show 0fce
,就可以檢視0fce*
那次都提交了哪些內容。
4. git remote
遠端
在之前,這個命令我基本上沒有怎麼使用過,因為建立的倉庫,除了第一次使用關聯到github
上之後,就再也沒咋用了。把本地的倉庫上傳至遠端,基本上會用到如下兩條命令。
git remote add origin https://github.com/XXX/xxx.git
git push -u origin
如果是你一個人玩Git
,那麼上面兩條命令真的夠了,很長一段時間我就是一個人玩。但是使用Git
版本控制器就註定了你不能再一個人玩下去了,協同處理專案才是版本控制器的真正意義。
git remote -v
檢視一下遠端的倉庫,通常情況下,你會看到一個origin
這個遠端倉庫,它是預設的遠端倉庫。基本上就是你第一次push
or clone
的那個倉庫。
情景
假設你在github
上fork
了一個別人的專案,並且clone
下到本地,而且玩了老長時間了,也許你還pull request
一下別人的專案,運氣好,別人還merge
了你的pull request
,然後過了好長時間,你都放棄了這個專案,然而別人還在一直更新,你想看看最新的專案狀態。那麼你可以通過下面幾條命令,再把別人倉庫的內容抓取下來。
git reomte add others https://github.com/xxx/xxx.git
git fetch others master
git checkout -b tmp others/master
- 首先新增一下別人的遠端倉庫,命名為
others
; - 然而使用
git fetch
命令抓取一下遠端倉庫的內容,通過git branch -r
,你就可以看到others/master
遠端分支了; - 再在本地建立一個
tmp
分支跟蹤遠端others/master
分支。 - 最後
tmp
的處理權就交到你的手裡了,刪除它或者merge
到本地master
上就看你的心情了。 - 最最後別忘了,再把它推送到你的遠端分支上
origin/master
,使用git push origin master
就行了。
5. gitk
圖形介面
要是讓我記那麼多git log
的引數實在是太讓人為難了,基本上是用的時候現查命令引數,自從知道了gitk
,現在連git log
都快忘了,這個圖形工具真是太方便了。一目瞭然各個分支都哪個地方。縱使我再崇拜命令列,我還是為了它妥協了。
Windows上就不用安裝了,安裝完git for windows就可以直接使用了。
Mac上如果無法使用gitk
命令啟動圖形介面,趕緊點選這裡安裝,不要再猶豫。
Linux,啊,能把Linux當桌面系統使用的使用者都是高手,我這裡就不班門弄斧了。
以上是這段時間對Git學習的一些內容,當作是Git學習的一個進階階段吧。Git博大精深,想深入瞭解還需更多的學習。當然它畢竟只是一個工具,工具只有在使用的時候才能體會到它是否滿足自己的需求,期待下一次進階學習。
轉載儲存: Git | LP's Blog
相關文章
- Go 進階學習筆記Go筆記
- Swift進階學習筆記Swift筆記
- python進階學習筆記(一)Python筆記
- 線段樹進階 學習筆記筆記
- Koa2進階學習筆記筆記
- git學習筆記Git筆記
- 圖論進階學習筆記(四)(2024.10.4)圖論筆記
- spark學習筆記--進階程式設計Spark筆記程式設計
- git學習筆記 1Git筆記
- git學習筆記1Git筆記
- Pro Git 學習筆記Git筆記
- Redux 進階 – react 全家桶學習筆記(二)ReduxReact筆記
- Redux 進階 - react 全家桶學習筆記(二)ReduxReact筆記
- 線段樹進階應用學習筆記(二)+普通資料結構進階應用學習筆記(一)(2024.10.1)筆記資料結構
- git高階命令學習記錄Git
- Git極簡學習筆記Git筆記
- git入門學習筆記Git筆記
- Git 的特點—— Git 學習筆記 02Git筆記
- 取得 Git 倉庫 —— Git 學習筆記 04Git筆記
- git rebase(變基)—— Git 學習筆記 19Git筆記
- nginx進階-3(32-34天)學習筆記Nginx筆記
- 人臉識別學習筆記二:進階篇筆記
- 技術筆記(8)git的部分進階功能筆記Git
- Git和Maven的學習筆記GitMaven筆記
- 20190228 學習筆記——廖雪峰 git筆記Git
- Git 簡單使用學習筆記Git筆記
- git status 命令總結 —— Git 學習筆記 06Git筆記
- git checkout 命令詳解—— Git 學習筆記 16Git筆記
- 進階筆記筆記
- Myth 關於Git的學習筆記Git筆記
- 撤銷操作 —— Git 學習筆記 12Git筆記
- 廖雪峰Git學習筆記1-Git簡介Git筆記
- git cherry-pick 詳解 —— Git 學習筆記 18Git筆記
- git reset 命令詳解(一)—— Git 學習筆記 07Git筆記
- git reset 命令詳解(二)—— Git 學習筆記 08Git筆記
- 【Web】Web 階段學習筆記Web筆記
- MySQL高階學習筆記(二)MySql筆記
- git checkout 和 git reset 的區別 —— Git 學習筆記 09Git筆記
- Arthas進階-筆記筆記