git的基本用法

2021-07-10 19:15:34 字數 1754 閱讀 9258

git功能強大,要熟練掌握不是那麼容易的,以下是個人學習的簡單總結。

git對版本的分布式控制主要體現在其repository在本地,大部分的操作都直接在本地完成。把repository放在本地也是一種備份。(本地備份git clone )

在git之前linux下就有diff/patch這樣的tool,有興趣可以細究,git 裡有相似的用法。

git init / git add / git commit 建立版本庫

最好是每完成乙個功能就提交一次,版本控制不是檔案備份。

git add命令將修改內容加入提交暫存區,執行git add -u可以將所有修改加入暫存區,執行git add -a可以將本地刪除檔案和新增檔案都提交到暫存區,執行git add -p可以對乙個檔案內的修改進行有選擇性的新增。

只要使用git,就會時刻與**的提交列表打交道。

從圖5-1中可以看到部分git命令是如何影響工作區和暫存區的。

圖左側為工作區,右側為版本庫。標記為index的區域是暫存區,標記為master的是master分支所代表的目錄樹。

當對工作區修改的檔案執行git add命令時,暫存區的目錄樹將被更新,同時工作區修改的檔案內容會被寫入到物件庫中的乙個新的物件中,而該物件的id被記錄在暫存區的檔案索引中。

當執行提交操作(git commit)時,暫存區的目錄樹會寫到版本庫(物件庫)中,master分支會做相應的更新,即master最新指向的目錄樹就是提交後原暫存區的目錄樹。

當執行git reset head命令時,暫存區的目錄樹會被重寫,會被master分支指向的目錄樹所替換,但是工作區不受影響。

當執行git rm --cached 命令時,會直接從暫存區刪除檔案,工作區則不做出改變。

master代表分支master中最新的提交,head代表版本庫中最近的一次提交。符號^可以用於指代父提交。

重置命令git reset --hard 可以將master指向任意的commit id.

如果沒有記下重置前master分支指向的提交id,想要重置回原來的提交可以使用git reflog show master | head, 找出id再進行reset。

使用git checkout 可以改寫head指向特定的commit id, 在commit id下修改提交不會被任何分支追蹤,會過期遺失,可以使用git merge合併解決。

git log --oneline --graph --decorate, 按需加引數。

cherry-pick按需合併分支。

git rebase --onto 將since之後的till及其之前的提交全部遷移到newbase上。

儲存和恢復工作進度使用git stash/git stash pop

git修改最新的提交說明可以這樣:git commit --amend, 如果不帶-m引數則會進入提交說明介面

如果要修改某個歷史提交說明,則需使用變基指令:git rebase

使用git來操作svn版本控**務器的一般工作流程為:

(1) 訪問svn伺服器,將svn版本庫轉殖為乙個本地的git庫: git svn clone

(2) 使用git命令操作本地轉殖的版本庫。

(3) 將本地提交同步到svn伺服器:git svn fetch / git svn rebase / git svn dcommit

參考:《git權威指南》

git的基本用法

在國內比較大的 託管平台 coding.net 碼雲。下面針對coding.net的一些基本操作 首先得安裝git 2.10.1 64 bit。安裝成功後方可右鍵選中進行操作。常用命令 git config global user.name 全域性配置使用者名稱 git config global ...

git的基本用法

edit by king 現在一直使用git作為版本管理軟體,原來在家裡的龍芯電腦上搭建了個gitosis 搭建過程可以看我的個人部落格 和 但是家裡一般不會老是開著這台電腦,而且外網ip位址也會變化,所以今天去gitorious上申請了個帳號,嘗試著把本地寫的 push到gitorious 上面去...

Git 的基本用法

git 的基本用法 版本回退 知道commit id 就可以切回任意位置 git reset hard id 回退到上乙個版本 git reset hard head 回退到上n個版本 git reset hard head n 後悔藥 git log 搜尋歷史commit id git reflo...