總覺得能寫出來才是自己的。我們進行開發工作,**和版本管理是不可少的,git不同於cvs和svn這樣的集中式版本控制系統,它是分布式的,每個人都有乙份**庫,遠端的**伺服器只是起到交換**修改的作用。git的優勢不僅在於不聯網就能幹活,更強大的是它的分支管理。
安裝好後需對其進行配置:git config --global user.name "qiqi"; git config --global user.email "[email protected]"
建立版本庫:在新建的資料夾下右鍵開啟gitbash或者按住shift開啟cmd,執行:git init。此資料夾變為乙個git倉庫。
git工作流:
在倉庫中有修改時:通過git add -a,提交到暫存區;
提交到歷史區:git commit -m「第一次修改」 ;(提交前必須add)
檢視三個區域的狀態:git status,紅色表示工作區的改動,綠色表示暫存區的改動。
檢視工作區和暫存區中檔案的區別:git diff;
檢視暫存區和歷史區的差異:git diff -cacher
回到過去的commit或者到未來的commit:
檢視commit記錄:git log;(git log --oneline:精簡顯示資訊;git log --oneline --all --graph --decorate:類圖形化顯示commit變動)
回退到上乙個版本:git reset --hard head^(git reset --hard 提交id:回退到任意之前的版本; --hard:回退工作區、暫存區、歷史區;--soft:值回退歷史區:--mixed:只回退歷史區和暫存區)
回退後悔了,想恢復回退:git relog:檢視命令記錄,git reset --hard 提交id。
git commit –amend
:有時候用 git commit -m 提交時,可能沒寫好或者誤操作導致提交的資訊不合適,但你還沒有 push 到遠端分支時,修改還未提交到遠端分支的 commit 資訊。
撤銷修改:
之前add了未commit,現在未 add未commit,丟棄工作區:git checkout -- 檔名
之前add了commit了,現在未add,丟棄工作區:git reset head 檔名;git checkout -- 檔名;
關於git checkout:
git checkout:
彙總顯示工作區、暫存區與head的差異。
git checkout head:同上
git checkout -- filename:用暫存區中filename檔案來覆蓋工作區中的filename檔案。相當於取消自上次執行git add filename以來(如果執行過)的本地修改。
git checkout branch -- filename:維持head的指向不變。用branch所指向的提交中filename替換暫存區和工作區中相應的檔案。注意會將暫存區和工作區中的filename檔案直接覆蓋。
刪除檔案:
誤刪:git checkout -- 檔名;確實要刪除:git rm 檔名;git commit -m「刪除」
分支:
git預設是在master上,在此基礎上可以建立其他分支,同時有乙個指標head,指向最新提交(commit),
檢視分支: git branch;
建立並切換分支:git checout -b dev (等於git branch dev,git checkout dev);
在master分支上把dev合併到master上:git merge dev
刪除分支:git branch -d dev
放棄某次合併:git merge --about
合併衝突:分別在a分支和b分支上修改,merge時出現衝突,這時候需要手動解決衝突,然後再提交。git log
--graph --oneline可以檢視分支合併圖。
禁用快速合併模式:通常合併分支是,如果可能,git會用fast forward模式,這樣合併後會丟掉分支資訊。禁用ff模式:git merge --no--ff -m「merge with no--ff」 dev.
在分支b上執行git rebase 分支a:會將b分支的所有提交追加在a分支後,以前的b
分支會被丟棄。(如果想放棄rebase:git
rebase --abort)
git cherry-pick commitid:把其他分支的某次提交追加到當前分支。
關聯github:
git remote add origin **庫位址;(origin可以隨便是 什麼名字,只是個標示而已,如果不想關聯了:git remote rm origin)
git remote -v;檢視關聯了哪些github
git push -u origin master:將master分支的東西提交到github(遠端);
其他命令:
git內部原理圖:
每commit一次就會產生tree物件(暫存區當前目錄樹的快照)和commit物件,master分支指向最新的提交。
git ls-files:檢視暫存區有什麼檔案;
git ls-tree head 檢視歷史區有哪些檔案
git cat-file -p id:檢視物件內容。
常用命令 Git 常用命令大全
安裝教程可參照 廖雪峰老師的安裝教程。git config 在git中,使用git config 命令來配置 git 的配置檔案,git配置級別主要有3類 1 倉庫級別 local 本地 git 倉庫級別配置檔案,作用於當前倉庫。優先順序最高 2 使用者級別 global,全域性配置檔案,作用於所有...
git 常用命令
檢視是否存在檔案需要上傳 git status git add git commit m 建立遠端倉庫 git remote add origin 116.255.146.153 ruby cd work daily project.git 更新git fetch 116.255.146.153 r...
git常用命令
詳細 1,git log p 命令來顯示每一次提交與其父節點提交內容之間快照的差異。2,為了檢視載入 staged 而並未提交 not committed 的內容差異,可以使用 git diff stage 命令 在git 1.6之前的版本中,使用 cached 適應情形 在執行git commit...