git使用(1)
首先要明白git上有三個區域
1.工作區
2.暫存區
3.歷史記錄區
步驟:
1.git init
2.配置環境(如果配置一次了以后就不用再繼續配置)
git config --global user.name “username”
git config --global user.email “email”
3.在本地版本庫設置遠程版本庫的別名:
git remote add 版本庫別名 <庫地址>
比如:git remote add origin 項目鏈接
git remote -v : 顯示遠程倉庫信息
假如遇到錯誤提示:fatal: remote origin already exists.
解決:git remote rm origin ,然后再執行前面的add操作
4.顯示當前分支
git branch -a ---顯示所有分支
git branch -r ---顯示遠程分支
5.假如在此時新增分支會報錯:fatal: Not a valid object name: 'master'
應該先commit
git commit –m ”注釋“
6.添加本地分支
git branch 本地分支名字
7.切換分支
git checkout 本地分支名
假如要把6、7步合並:git checkout -b 本地分支名
這樣就創建新分支的同時立即切換到剛創建好的分支
8.添加本地文件到暫存區
git add 文件名(如果添加整個目錄就加入-A參數,假如要進入該目錄下推送目錄內的文件,要重新操作前面的commit和checkout)
然后再commit
9.推送暫存區到遠程
git push origin 本地分支:遠程分支 (遠程分支可以不填)
如果遠程分支不寫,則表示將本地分支推送與之存在跟蹤關系的遠程分支(一般同名),如果該遠程分支不存在,會自動創建
比如git push origin master
上面的命令就是把本地的master分支推送到origin主機的master分支,如果后面的那個master不存在,那么就會自動創建
如果遇到 錯誤提示:error:failed to push som refs to.......
解決:git pull origin 分支名 ----先把遠程倉庫的文件拉到本地,再push
假如從master創建一個新分支(假設叫test),使用git push origin master提交,顯示'Everything up-to-date'
原因是git push origin master在沒有跟蹤遠程分支的本地分支默認提交了master分支,因為master分支默認指向origin master分支,這時應該要:
git push origin test:master
git push origin test:master // 提交本地test分支作為遠程的master分支
git push origin test:test // 提交本地test分支作為遠程的test分支
git push origin :test //遠程分支被刪除,但是本地分支保存
git push origin --delete test //同上
如果想節省后續操作,可以試試
git push -u origin master //指定origin為主機,后續操作就不用加參數了,直接使用git push(對於同個目錄)
如果要把本地所有分支都推送到主機origin:
git push -all origin
如果要附帶標簽:
git push origin --tags
10.修改沖突或更新文件
(從任意遠程版本庫中取來修改變化,並合並到當前檢出的本地分支)
假如本地更新了文件再push,遠程沒有更新,會發送沖突,使用
git pull origin 遠程分支:本地分支
把遠程文件拉到本地與本地分支合並
修改之后要再commit再推送
如果遠程分支和當前本地分支合並,冒號后面的可以省略(類似先git fetch再git merge)
實際上pull命令並不是很安全(建議用fetch(它取回的代碼對你本地的開發代碼沒有影響)和merge),如果遠程刪除某個分支,默認git pull不會在拉取遠程分支時刪除對應的本地分支。但是如果加上參數-p(git pull -p)就會在本地刪除遠程已經刪除的分支
這樣的命令也類似:
git fetch --prune origin
git fetch -p
修改遠程倉庫:git remote set-url origin 新鏈接地址
git的跟蹤關系:
某些情況下,git自動在本地和遠程分支之間建立的,比如在git clone的時候所有的本地分支默認就是與遠程主機origin的同名分支建立跟蹤關系,本地分支將自動跟蹤遠程分支,比如主分支,本地master分支就會跟着origin/master
你也可以手動設置跟蹤關系:
git branch --set-upstream master origin/test
本地master分支跟蹤遠程origin/test
就像前面的pull操作,可以直接用
git pull origin
當前本地分支自動和它跟蹤的遠程分支(針對建立了跟蹤關系的適用)進行合並
如果當前的本地分支只有一個跟蹤的遠程分支
git pull
主機名都可以省略
按照上面的步驟基本能完成一個簡單的推送
參考:http://www.cnblogs.com/springbarley/archive/2012/11/03/2752984.html
(git常用命令)
http://rongjih.blog.163.com/blog/static/335744612010112562833316/
(Git常用操作命令,很全)
https://segmentfault.com/a/1190000003076490#articleHeader13
(Git學習總結,帶圖解)
http://josh-persistence.iteye.com/blog/2215214
(詳解Git工作區、暫存區、歷史記錄區以及git reset、git revert、git checkout等撤銷命令的區別)