Git使用筆記

初始使用流程:git

git config [--global] user.name "xxx" 設置usernameapp

git config [--global] user.email "xxx@xxx" 設置email編輯器

--global:全局設置,不加則是對當前git 目錄設置(適合區別公司項目和私人項目)工具

 

git init :當前目錄加入git版本控制(不想再用git管理:rm -rf .git/ )url

git add -A(添加全部文件到暫存區)版本控制

git commit -m "提交信息"rem

git push <遠程分支name>(只有一個遠程分支時可省略)get

 

與他人合做同一個倉庫時:hash

1. 按期pull一下拉取最新代碼it

2. 提交代碼(無分支版):

本身在提交代碼以前先pull代碼,假如修改同一個文件了,通常會提示拉取失敗,這個時候須要stash當前修改到儲藏區:

git stash [save 'message'] 

git pull

git stash pop (彈出stash棧頂的stash即剛纔stash的修改,或者使用 stash apply 可不刪除該stash)

這時本地和遠程的二者修改的不是同一塊內容時,能夠自動合併,改了同一塊區域時,大多編輯器會提示衝突區域,而且提供合適的工具幫助合併(eg:IDEA),也能夠本身配置git difftool或者mergetool進行合併代碼

上面的拉去代碼的步驟 有些IDE自動幫你作了(eg:IEDA)。

保證本地代碼最新後再進行add commit等操做,而後進行push

3. 提交代碼(分支版)

在當前編輯的功能或bugfix分支commit以後(不提交的話切換分支會保留修改),切換到主分支

git checkout  master  (git checkout -b <branchName> 新建並切換到此分支)

在master分支下pull拉取最新代碼,沒有衝突,由於不會直接編輯master分支

而後開始merge分支

git merge branchName

若是沒有衝突將會很順利,假若有衝突,git會生成衝突標記,須要手動解決衝突,可藉助於工具 好比 beyondCompare (3-way merge tool)

解決衝突後,add文件 提交文件,而後更新遠程master分支

 

4. 在某一分支上不是最新的記錄上提交了怎麼辦?

假若有git提交圖示的話,能夠看出是你在歷史的一次提交上分叉commit了,有些IDE很貼心的能夠幫你自動merge以後提交。

手動解決這個問題的話,能夠是 拉取新代碼到一個新的分支上,而後merge兩個分支再提交,相似於master的合併,(仍可能會存在衝突)

 

5. 重置commit

使用git reset 命令

git reset --soft HEAD~ 最近的一次commit

或者 git reset --soft  <commit hash>

--soft --mixed --hard區別:soft會把被重置的修改放入 staged,即git add的效果;mixed會變成未staged的修改;hard會徹底清除掉(包括被重置的修改和當前未add的修改,慎用!)

 

6. 設置遠程url

git remote set-url <name> <newurl>

 

總結:git的使用可使用 git --help 或者某個命令的 help 像:git config --help 來查看相應手冊

相關文章
相關標籤/搜索