初始使用流程: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 來查看相應手冊