git
mac 安裝git
$brew install git
創建版本庫repository
mkdir ~/repository_test
cd ~/repository_test
初始化repository
git init
此時多出一個文件夾.git,裏面存放版本庫信息
版本庫添加文件
git add file.txt
可以同時添加多個文件,git add xxx,xxxx
將文件提交到git
git commit -m “this is remarks”
-m參數是每次修改後給出的提示
如果修改文件後需要提交到版本庫
git add xxx
git commit -m
掌握工作區的狀態(有沒有添加未提交之類的信息)
git status
如果修改後還未add,想知道哪裏改動了,可以使用
git diff file.txt
如果想知道查看提交日誌
git log
返回最近三次提交日誌,commit id,作者,時間
簡化輸出添加參數 —pretty=oneline
git log —pretty=oneline
版本回退
可以理解爲git中使用HEAD這個指針指定那個版本,而HEAD代表當前版本,HEAD^ 代表上一個版本,HEAD^^代表上一個把本,使用數字代表版本HEAD~3
git reset —hard HEAD^
或
git reset —head HEAD~1
或
git reset -head gitcommit_id 這個id不需要全部寫出
版本回退後,使用git log就無法查看到之前當前版本之後的版本了,如果之前的 commit_id還存在可以使用commit_id 回退
查看執行紀錄(可以查看過往的commit id)
git reflog
比較當前工作區與版本庫中文件的差別
git diff HEAD — file.txt
撤銷修改
git checkout — file.txt
這個撤銷是指撤銷到git commit或git add後的版本,如果工作區修改了這個文件並且沒有add,commit這時候撤銷到版本庫中的當前版本,如果已經add了,則撤銷到add 後暫存區內的版本
將暫存區內的版本回退回來
git reset HEAD file.txt
刪除文件
rm file.txt
此時如果是誤刪除,想要恢復,直接git checkout — file 回退到版本庫當前版本
如果是就想刪除,連同版本庫內的文件都刪除需要
git rm file.txt
git commit -m ‘remove file’
這時候徹底刪除了該文件
遠程倉庫Github,提供Git倉庫託管服務的
1、申請Github賬戶
2、創建SSH KEY
ssh-keygen -t rsa -C “[email protected]”
此時.ssh目錄中有了公鑰id_rsa.pub和私鑰id_rsa
3、Github添加SSH KEY
Account settings->SSH KEYs->ADD SSH KEY,將之前的公鑰添加進來
這樣就可以使用你的電腦將文件推送到Github上了
4、在Github上面創建Git倉庫
create new reponsitory,輸入repository name 點擊創建
5、關聯本地庫
git remote add origin https://github.com/datayjz/mt_work.git
或者
git remote add origin [email protected]:datayjz/mt_work.git
將對應位置改爲自己的Github和倉庫
origin這個名字就是遠程庫的名字,可以修改
git push -u origin master
這個是首次將,使用-u,不但將本地master分支推送到遠程庫的master上,並且將 其分支也進行了關聯,以後就不需要使用了,直接使用
git push origin master 將本地最新修改推送到遠程庫
遠程庫克隆到本地
git clone [email protected]:youname/reponsitory.git
這樣將遠程庫就克隆到本地了,支持多人開發,很方便
創建並切換分支
git checkout -b fenzhi_name
相當於
git branch fenzhi_name
git checkout fenzhi_name
查看分支,當前分支前面會有*
git branch
然後就可以在分支上進行工作了
切換回主分支
git checkout master 此時分支上進行的工作內容沒有了,因爲那些操作實在另一個分 支上操作的
合併指定分支到當前分支
git merge fenzhi_name
刪除分支
git branch -d fenzhi_name
Git鼓勵大量使用分支:
查看分支:git branch
創建分支:git branch <name>
切換分支:git checkout <name>
創建+切換分支:git checkout -b <name>
合併某分支到當前分支:git merge <name>
刪除分支:git branch -d <name>
產生分支衝突後將衝突地方改爲一樣,然後add ,commit
git log —greph —pretty=oneline —abbrev-commit查看分支歷史
git merge —no-ff -m “miao shu” fenzhi_name
是用—no—ff,禁用fast forward ,這時候會創建一個commit,-m描述就是這個combat
分支策略
在實際開發中,我們應該按照幾個基本原則進行分支管理:
首先,master分支應該是非常穩定的,也就是僅用來發布新版本,平時不能在上面幹活;
那在哪幹活呢?幹活都在dev分支上,也就是說,dev分支是不穩定的,到某個時候,比如1.0版本發佈時,再把dev分支合併到master上,在master分支發佈1.0版本;
你和你的小夥伴們每個人都在dev分支上幹活,每個人都有自己的分支,時不時地往dev分支上合併就可以了。
所以,團隊合作的分支看起來就像這樣:
git儲藏現場
git stash
恢復現場
git stash apply然後刪除stash ,git stash drop
或直接 git stash pop
git stash list查看stash
不需要分支的內容了,刪除分支
git branch -D fens_name
查看遠程庫信息
git remote -v
推送分支
git push origin fenzhi_name
origin爲遠程庫,fenzhi_name爲本地分支
名詞解釋
工作區:自己創建的目錄
版本庫:初始化git目錄後的.git目錄
暫存區:.git下面的index稱爲暫存區,當git add後將文件放到了暫存區中
分支:當初始化git後默認創建了一個分支master,放git commit時候就是將暫存區內的內容提交給分區
分支:使用分支進行多人協作合作,不影響主分支工作