之前從未用過git之類的版本控制工具,入職之後,公司使用git做版本控制,到現在也算是了解了git的基本操作。今天總結一下,希望可以給未使用過git的同學一些幫助。首先樹立乙個觀點,git這玩意放心大膽的玩,玩不壞。
git是一種分布式版本控制工具,而svn這種屬於集中式版本控制工具。關於分布式與集中式管理的區別,我感覺就是集中式存在乙個**伺服器的概念,並且只有在網路通暢可以與**伺服器互動的前提下才能工作。而分布式版本控制系統根本沒有「**伺服器「,每個人的電腦上都是乙個完整的版本庫,這樣,工作的時候,就不需要聯網了,因為版本庫就在你自己的電腦上,且更加安全,因為每個人本地都有乙個版本庫,不會因為某一台機器崩潰而導致**不可用。git的使用也可以分為圖形git和命令git,圖形git就是依託一些圖形化工具與版本庫進行互動,命令git就是直接通過命令列的方式操作。這裡我只介紹命令列git的使用。
先普及幾個概念(便於理解的解釋,並不完全準確):
工作區:本地正在修改的檔案集
快取區:add操作的物件
版本庫:commit操作的物件
git init
git clone *.git
git clone -b 分支名 *.git
git add filename
git commit -m 備註資訊
git log --pretty=oneline (行形式顯示git操作歷史)
git reflog (顯示所有歷史,包括未來)
git log --graph (影象化顯示歷史)
git reset --hard commit_id (版本回退)
git reset --hard head^ (回退到上乙個git版本)
git reset --hard head~n (回退到之前n個版本)
git checkout -- filename
步驟1:git reset head filename
步驟2:git checkout -- filename
git rm filename
步驟1: git rm --cached useless.log
步驟2: git commit -m "remove file from remote repository"
步驟3: git push
步驟1: git rm --cached -r useless
步驟2: git commit -m "remove directory from remote repository"
步驟3: git push
git checkout -- filename
git branch (檢視本地分支)
git branch -a (檢視分支,包括本地分支和遠端分支)
git branch name (建立分支)
git checkout name (切換分支)
git checkout -b name (建立+切換分支)
git merge name (合併某分支到當前分支)
git branch -d name (刪除分支)
git branch -d name (強行刪除分支,如果分支未commit, 使用-d是無法刪除的,只能強制刪除)
git remote add origin *.git
git branch --set-upstream-to origin/遠端分支 本地分支
git push 《遠端主機名》 《本地分支名》:《遠端分支名》
ps:若本地遠端有關聯關係,遠端主機名用origin代替
ps:若省略遠端分支名,則表示將本地分支提交到遠端相同的分支上,如果遠端不存在該分支,則新建該分支
ps:若省略本地分支,則表示將本地乙個空的分支提交到遠端,即刪除遠端分支
git push origin :dev等價於git push origin --delete dev
ps:若本地分支和遠端分支同時省略,表示講本地當前分支提交到遠端相同的分支
git push --all origin (將本地所有分支都提交到遠端)
git pull 《遠端主機》 《遠端分支》:《本地分支》
ps:如果省略本地分支,則表示講遠端分支合併到本地當前分支
步驟1: git stash 暫存本地工作區修改內容
步驟2: git checkout master 切換到master分支,用於在master分支上新建bug分支
步驟3: git checkout -b bug01 新建bug分支用於休bug
步驟4: 修復bug
步驟5: git add + git commit
步驟6: git checkout master 切回master分支,
步驟7: git merge --no-ff -m "" bug01 合併bug01到master分支
步驟8: bug修復完成,切回原工作分支,git stash pop 彈出stash內容
上面講的其實還是有點複雜,其實工作之中最常用的還是,建分支,在分支上修改,add到本地快取區,commit到本地版本庫,push到遠端倉庫。現在的ide比如intellij idea都可以很好的支援git操作,使用起來相當簡單。出現問題時,根據ide提示基本都能解決。
參考:廖雪峰git教程
litianze99的專欄-git push & git pull 推送/拉取分支
segmentfault-git刪除操作
Git使用教程
提起git,大家無疑會想到github,沒錯,我就是通過眾多的github專案鏈結了解到的git,不知你是否也在走這條路呢?如果是的話,本文有一些有用的總結性文字以及一些 git教程 可以教會你如何去使用 git.當然,這些對 github 同樣適用.這裡我又翻到了個幻燈片,可以供大家 寫給大家的 ...
Git使用教程
目的描述 新建的git專案,專案中有許多要從本地上傳到git倉庫的新檔案,如果用git a filename的方法乙個乙個的新增,太費事費力,需要有命令新增所有改動。步驟 進入專案資料夾,在其中使用git bash git clone git address 2.進入git專案的本地資料夾,將自己的...
Git使用教程
在使用git做日常版本控制的管理,現將git版本控制的操作步驟及日常經常使用的命令整理一下。2 檢視轉殖下來的git庫的分支情況 git branch 這個時候看到返回的是master,說明現在只有乙個分支,即master分支 3 然後在本地新建乙個自己的開發分支 git branch 分支名,假設...