push:? 本地分支合并到遠程分支
pull:? ?遠程分支合并到本地分支
git在合并時镜沽,兩個分支修改了同一個文件的同一處代碼時妈橄,會產(chǎn)生沖突媒鼓。
通過對比 commit 的記錄,如果本地高于遠程就直接把多出來的commit?給懟上去,如果本地分支的最新版本和遠程的?commit?有沖突宵晚,就需要解決沖突
為什么要先commit,然后pull闺鲸,再push瞻赶?
commit是告訴git赛糟,這次提交改了哪些東西,不然只是自己改了砸逊,git不知道你改了璧南,無從判斷比較
pull是為了本地commit和遠程commit的對比記錄,git按照文件的行數(shù)操作進行對比师逸,如果同時操作了某文件的同一行那么就會產(chǎn)生沖突司倚,這時候需要手動解決,保留本地分支代碼還是保留遠程分支代碼? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
出現(xiàn)代碼覆蓋或者丟失的情況:
A篓像、B進行協(xié)同開發(fā)時动知,有一人沒有commit操作,就push了(修改了另一個人寫的代碼)员辩,容易出現(xiàn)代碼覆蓋
本地代碼進行commit后盒粮,倉庫不會將本地代碼與遠程倉庫代碼進行比較,不會識別是否存在代碼沖突奠滑,必須進行pull命令后丹皱,才會將本地代碼與倉庫遠程代碼進行比較妒穴,如果存在沖突,必須要解決沖突后重新commit和push种呐。不存在沖突宰翅,會在pull時直接合并代碼,不會將本地代碼覆蓋掉爽室。
一些常用命令
git config --global user.name"bukas"
git config --global user.email"bukas@gmail.com"
git reset --hard 1094a 回退到指定提交
git remote add origin git@github.com:michaelliao/learngit.git?
git push origin master 推送到遠程庫master分支
git branch 查看所以分支
git commit -m " a"? 告訴git把文件提交到本地倉庫(本地分支)
第一步是用git add把文件添加進去汁讼,實際上就是把文件修改添加到暫存區(qū);
第二步是用git commit提交更改阔墩,實際上就是把暫存區(qū)的所有內(nèi)容提交到當前分支嘿架。
因為我們創(chuàng)建Git版本庫時,Git自動為我們創(chuàng)建了唯一一個master分支啸箫,所以現(xiàn)在git commit就是往master分支上提交更改
git add命令實際上就是把要提交的所有修改放到暫存區(qū)(Stage)耸彪,然后執(zhí)行g(shù)it commit就可以一次性把暫存區(qū)的所有修改提交到分支