什么是Git搔涝?什么是Git的倉庫與分支?
Git 主頁上的定義:Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.
意思是:Git是一個免費(fèi)開源的分布式版本管理系統(tǒng)鸯隅,它可以快速有效的處理大大小小的項(xiàng)目腋舌。其實(shí)Git就像是一個軟件,這個軟件幫助開發(fā)者們管理自己的項(xiàng)目版本進(jìn)度。
Git的遠(yuǎn)程倉庫
Git 并不像 SVN 那樣有個中心服務(wù)器坑资, 而且Git 命令都是在本地執(zhí)行,如果你想通過 Git 分享你的代碼或者與其他開發(fā)人員合作穆端,你就需要將數(shù)據(jù)放到一臺其他開發(fā)人員能夠連接的服務(wù)器上袱贮。所以一般說的遠(yuǎn)程倉庫指的是遠(yuǎn)端的一個服務(wù)器,上面部署了當(dāng)前項(xiàng)目Project,一個遠(yuǎn)程服務(wù)器上面可以部署很多個項(xiàng)目攒巍。
Git的遠(yuǎn)程分支
遠(yuǎn)程分支嗽仪,又叫遠(yuǎn)程跟蹤分支remote-tracking branch,是遠(yuǎn)程分支狀態(tài)的引用柒莉,它們是你不能移動的本地引用闻坚,遠(yuǎn)程跟蹤分支是你上次連接到遠(yuǎn)程倉庫時,那些分支所處狀態(tài)的標(biāo)簽兢孝,遠(yuǎn)程分支以(remote)/(branch)命名窿凤。
當(dāng)你在本地執(zhí)行git clone
時,會將遠(yuǎn)程倉庫中所有的內(nèi)容克隆下來跨蟹,包括遠(yuǎn)程分支雳殊,并且遠(yuǎn)程分支會以/remote/origin/branchname這種方式自動命名。當(dāng)需要切換到對應(yīng)的遠(yuǎn)程分支時窗轩,只需要在本地倉庫執(zhí)行git checkout branchname
夯秃,這樣不僅能夠切換到對應(yīng)的分支,而且git會幫你在本地建立一個分支branchname痢艺,它與遠(yuǎn)端分支/remote/origin/branchname之間是上下流關(guān)系仓洼。
Git的本地分支
Git作為一款版本管理工具,自然少不了在開發(fā)過程中建立多個開發(fā)分支堤舒。本地分支色建,顧名思義,指的是開發(fā)者在本地倉庫建立的一個分支舌缤,通過在該分支上修改文件镀岛,達(dá)到開發(fā)目的。本地分支與遠(yuǎn)端分支之間沒有對應(yīng)關(guān)系友驮,需要配置上下流關(guān)系,才能將本地分支的文件改動推送到遠(yuǎn)端分支驾锰。
常用的Git命令有哪些卸留?
git clone repoURL
簡單來說,git clone的repoURL就是以http或者ssh開頭的網(wǎng)址椭豫,其實(shí)就是遠(yuǎn)程倉庫的地址耻瑟,也就是遠(yuǎn)程服務(wù)器地址+遠(yuǎn)程倉。
git clone
會完全克隆repoURL倉庫中的內(nèi)容赏酥,遠(yuǎn)程倉庫中每一個分支都會在本地倉庫生成對應(yīng)的遠(yuǎn)程跟蹤分支喳整,這些遠(yuǎn)程跟蹤分支在.git/refs/remotes/遠(yuǎn)程倉庫名/下面,并在本地創(chuàng)建并檢出遠(yuǎn)程分支上的當(dāng)前分支
git checkout repo
git checkout -b repo
git status
git log
git add file
git commit -m "commit message"
git branch --set-upstream-to=="origin branch"
git push -u
git config --global user.name "xiaoming"
git config --global user.email "xiaoming@163.com"
git fetch
git peak
git reset --hard ^HEAD
git reset --hard commitId
git reflog
一般工作流程
- 在遠(yuǎn)端倉庫建立對應(yīng)的開發(fā)分支A
- 克隆遠(yuǎn)端倉庫裸扶,如果本地已經(jīng)有對應(yīng)項(xiàng)目的git倉庫框都,則需要切換到主分支(即master分支)執(zhí)行
git pull
即可將遠(yuǎn)端已經(jīng)建立的分支A拉到本地 - 在開發(fā)分支A上添加或修改文件
git add
和git commit
- 如果其他人修改這個分支,你需要更新分支內(nèi)容呵晨,在當(dāng)前分支執(zhí)行
git pull
- 在提交前查看修改是否符合預(yù)期
git diff
- 提交修改到遠(yuǎn)端開發(fā)分支
git push -u
- 在修改完成后魏保,如果發(fā)現(xiàn)錯誤熬尺,可以撤回提交并再次修改并提交
git reset
等