Git 成長貼 一

2021-06-17 19:11:20 字數 3288 閱讀 3831

由於工作的需要,自己常常需要對同樣的**拉不同的分支,做不同的測試,最後要合併其中乙個分支。剛看時使用svn,發現自己必須在本地或者伺服器上建立不同的分支,而且拉很多分支的時候這個就很痛苦。

後來發現git--分布式的版本控制工具,自己便在本地使用它做為版本管理。發現它不論在拉分支(git可以隨意拉很多分支),合併,提交都很是方便。

現在總結下git的使用。

基本使用

git config --global user.name "your name"

git config --global user.email "your email"

git init

git add

#當前目錄下的所有檔案

git add . 

git add

git checkout

git checkout -b

git branch

git branch

git log

git log -p

git diff

git commit -m "your comment" /* 針對用git-add新增過新檔案的情況使用 */

git commit -a -m "your comment" /* 針對無新檔案新增的情況使用 */

git pull

git push

git reset --hard 等同於 git reset --hard head(見後面描述)

7) 軟恢復(只恢復git索引,不改變其它任何檔案修改內容和git status資訊)

git reset --soft 等同於 git reset --soft head(見後面描述)

8) 預設恢復 (恢復git索引和git status狀態,不改變任何修改檔案的內容)

git reset --mixed等同於git reset等同於git reset head 等同於git reset --mixed head

9) head, head^, head^^, head^分別表示當前提交,倒數第二次提交,倒數第三次提交,以及倒數第n次提交

git reset --hard head^

git reset --soft head

10) 檢視某次修改

git show head等同於git show

git show head^

git show head^^

git show head^

10) 檢視所有修改記錄

git log

11) 轉殖git

git clone src_git target_git

15) 刪除分支

git branch -d delete_branch

16) 合併分支

git merge src_branch

17) 同步clone的git倉庫

git fetch origin

git merge origin/master

18) 遠端git訪問

git pull remote_git [local_git]

19) 更新遠端git

git push remote_git current_branch

例如:git remote add origin git:

上面的命令就會增加url位址為'git: ',名稱為origin的遠端伺服器,以後提交**的時候只需要使用 origin別名即可

掌握提高

git rebase:

用下面兩幅**釋會比較清楚一些,rebase命令執行後,實際上是將分支點從c移到了g,這樣分支也就具有了從c到g的功能

將當前的工作目錄完全回滾到指定的版本號,假設如下圖,我們有a-g五次提交的版本,其中c的版本號是 bbaf6fb5060b4875b18ff9ff637ce118256d6f20,我們執行了'git reset 

bbaf6fb5060b4875b18ff9ff637ce118256d6f20'那麼結果就只剩下了a-c三個提交的版本

git stash:

將當前未提交的工作存入git工作棧中,時機成熟的時候再應用回來。

基礎命令:

$git stash

#do your work

$git stash pop

高階:

git tag:

可以將某個具體的版本打上乙個標籤,這樣你就不需要記憶複雜的版本號雜湊值了,例如你可以使用'

git tag revert_version bbaf6fb5060b4875b18ff9ff637ce118256d6f20

'來標記這個被你還原的版本,那麼以後你想檢視該版本時,就可以使用 revert_version標籤名,而不是雜湊值了

svn(subversion)是當前使用最多的版本控制工具。與它相比較,git 

最大的優勢在於兩點:易於本地增加分支和分布式的特性。

下面兩幅圖可以形象的展示git與svn的不同之處

對於易於本地增加分支,圖中git本地和伺服器端結構都很靈活,所有版本都儲存在乙個目錄中,你只需要進行分支的切換即可達到在某個分支工作的效果。而 svn則完全不同,如果你需要在本地試驗一些自己的**,只能本地維護多個不同的拷貝,每個拷貝對應乙個svn伺服器位址。舉乙個實際的例子,以前我所在 的小組使用svn作為版本控制工具,當我正在試圖增強乙個模組,工作做到一半,由於會改變原模組的行為導致**伺服器上許多測試的失敗,所以並沒有提交代 碼。這時候上級對我說,現在有乙個很緊急的bug需要處理, 必須在兩個小時內完成。我只好將本地的所有修改diff,並輸出成為乙個patch文 件,然後回滾有關當前任務的所有**,再開始修改bug的任務,等到修改好後,在將patch應用回來。前前後後要完成多個繁瑣的步驟,這還不計中間** 發生衝突所要進行的工作量。可是如果使用git, 我們只需要開乙個分支或者轉回到主分支上,就可以隨時開始bug修改的任務,完成之後,只要切換到原來的分支就可以優雅的繼續以前的任務。只要你願意,每 乙個新的任務都可以開乙個分支,完成後,再將它合併到主分支上,輕鬆而優雅。

git成長之路(一)

git常用命令 github與pycharm的結合使用 使用環境 windows10 global user.name global user.email 建立使用者名稱和使用者的email 隨便設定,為了標識是誰在進行 操作 git init到你制定的資料夾下,初始化資料夾 git status檢...

git 命令記錄貼

記錄下最近使用git的場景。問題 1 將乙個完整的專案發布到已建立好的git位址 碼雲 執行步奏 1 配置自己的公鑰 2 檢查是否連線成功 ssh t git git.oschina.net welcome to git osc,張輝 3 初始化專案資料夾 git init 4 同步線上版本庫 gi...

職場成長(一)

職場雖然不如官場,但是同樣需要注意很多細節點,有時候乙個不小心,你的職業生涯就到此結束,平時對自己要求高一些總沒壞處。走路的姿勢很重要,往往可以體現乙個人的整體形象,切勿一些奇怪的走姿 大爺步 外八步 內八步 大搖大擺 匆匆忙忙 蹦蹦跳跳。上班期間最好不要穿奇裝異服,比如 古裝 cosplay 男扮...