git reset 回退版本命令
上乙個版本就是head^,上上乙個版本就是head^^,當然往上100個版本寫100個^比較容易數不過來,所以寫成head~100
git reset命令既可以回退版本,也可以把暫存區的修改回退到工作區。當我們用head時,表示最新的版本。
git resethead
git reflog 記錄每一次命令
git diff 比較區別
git checkout -- 撤銷修改
關聯乙個遠端庫,使用命令git remote add origin git@server-name:path/repo-name.git
關聯後,使用命令git push -u origin master第一次推送master分支的所有內容;
此後,每次本地提交後,只要有必要,就可以使用命令git push origin master推送最新修改;
git支援多種協議,預設的git://使用ssh,但也可以使用https等其他協議。
使用https除了速度慢以外,還有個最大的麻煩是每次推送都必須輸入口令,但是在某些只開放http埠的公司內部就無法使用ssh協議而只能用https。
分支:分支在實際中有什麼用呢?假設你準備開發乙個新功能,但是需要兩周才能完成,第一周你寫了50%的**,如果立刻提交,由於**還沒寫完,不完整的**庫會導致別人不能幹活了。如果等**全部寫完再一次提交,又存在丟失每天進度的巨大風險。
現在有了分支,就不用怕了。你建立了乙個屬於你自己的分支,別人看不到,還繼續在原來的分支上正常工作,而你在自己的分支上幹活,想提交就提交,直到開發完畢後,再一次性合併到原來的分支上,這樣,既安全,又不影響別人工作。
但git的分支是與眾不同的,無論建立、切換和刪除分支,git在1秒鐘之內就能完成!無論你的版本庫是1個檔案還是1萬個檔案。
當我們建立新的分支,例如dev時,git新建了乙個指標叫dev,指向master相同的提交,再把head指向dev,就表示當前分支在dev上:
git checkout命令加上-b引數表示建立並切換,相當於以下兩條命令:
$ git branch dev
$ git checkout dev
head嚴格來說不是指向提交,而是指向master,master才是指向提交的,所以,head指向的就是當前分支。
每次提交,master分支都會向前移動一步,這樣,隨著你不斷提交,master分支的線也越來越長:
當我們建立新的分支,例如dev時,git新建了乙個指標叫dev,指向master相同的提交,再把head指向dev,就表示當前分支在dev上:
git鼓勵大量使用分支:
檢視分支:git branch
建立分支:git branch
切換分支:git checkout
建立+切換分支:git checkout -b
合併某分支到當前分支:git merge
刪除分支:git branch -d
通常,合併分支時,如果可能,git會用fast forward模式,但這種模式下,刪除分支後,會丟掉分支資訊。
分支策略
在實際開發中,我們應該按照幾個基本原則進行分支管理:
首先,master分支應該是非常穩定的,也就是僅用來發布新版本,平時不能在上面幹活;
那在哪幹活呢?幹活都在dev分支上,也就是說,dev分支是不穩定的,到某個時候,比如1.0版本發布時,再把dev分支合併到master上,在master分支發布1.0版本;
你和你的小夥伴們每個人都在dev分支上幹活,每個人都有自己的分支,時不時地往dev分支上合併就可以了。
所以,團隊合作的分支看起來就像這樣:
合併分支時,加上--no-ff引數就可以用普通模式合併,合併後的歷史有分支,能看出來曾經做過合併,而fast forward合併就看不出來曾經做過合併。
當手頭工作沒有完成時,先把工作現場git stash一下,然後去修復bug,修復後,再git stash pop,回到工作現場。
命令列 Git Bash命令列小結
展示當前完整路徑pwd 建立資料夾mkdir 建立檔案touch 刪除資料夾rm rf 刪除檔案rm 重新命名mv 展示當前路徑下檔案 除了隱藏檔案 ls 展示當前路徑下所有檔案ls a 展示當前路徑下所有檔案以及詳細資訊ls al 轉至某目錄cd 根目錄 上級目錄.當前目錄.檢視檔案cat 檔名稱...
git 命令列學習筆記
1.安裝完git配置使用者名稱和郵箱 git config global user.name john doe git config global user.email johndoe example.com 2.git config list 檢視所有配置資訊 初始化倉庫 git init 3.檔...
git命令列學習筆記
git init 新建乙個空倉庫,倉庫就是當前目錄 git init project name 在當前目錄新建乙個peoject name倉庫,相當於在裡面新建了乙個資料夾 git log 顯示操作歷史記錄 git log pretty oneline 用一行來顯示操作歷史記錄 git reset ...