GIT 企業(yè)開(kāi)發(fā)
最近找實(shí)習(xí),在完善簡(jiǎn)歷,遂發(fā)一發(fā)存貨,有待持續(xù)完善,我認(rèn)為這部分非常的有意義
1. 基本操作
1.1 創(chuàng)建,配置本地倉(cāng)庫(kù)
創(chuàng)建
mkdir gitcode
cd gitcode
git init
配置
git config user.name "bts"
git config user.email "xxx"
git config -l
將配置生效于當(dāng)前機(jī)器的所有倉(cāng)庫(kù)
git config --global user.name "xxx"
刪除配置/刪除全局配置
git config --unset user.name
git config --global --unset user.name
1.2 認(rèn)識(shí)工作區(qū),暫存區(qū),版本庫(kù)
-
.git
:版本庫(kù),不允許手欠做任何修改! -
stage/
或index/
:暫存區(qū),索引 -
gitcode/
: 工作區(qū)
- 修改的工作區(qū)內(nèi)容會(huì)寫入**對(duì)象庫(kù)
objects
**的一個(gè)新的git對(duì)象
1.3 添加文件
可查看提交記錄
git log
提交全部文件/指定的一些
git add .
git add [file]
將暫存區(qū)內(nèi)容提交,請(qǐng)不要瞎寫
git commit -m "你憋瞎寫"
1.4 關(guān)于文件的修改
**git追蹤管理的是修改??!**而不是文件
查看對(duì)于文件狀態(tài)
git status
查看暫存區(qū)和工作區(qū)的差異
git diff [file]
查看版本庫(kù)和工作區(qū)的差異
git diff HEAD --[file]
1.5 版本回退
前提??!commit后還沒(méi)有push?。∵@也是我們回退的目的,不玷污遠(yuǎn)程倉(cāng)庫(kù)的代碼
本質(zhì)回退版本庫(kù)中的內(nèi)容,git log
可查看commit id
git reset [--soft | --mixed | --hard][HEAD]
-
--soft
:只回退版本庫(kù)中內(nèi)容 -
--mixed
:只回退版本庫(kù)和暫存區(qū)中內(nèi)容(默認(rèn)項(xiàng)) -
--hard
:全部回退(慎用!?。?/li>
撤銷回退,那就拿著你想退到那兒的commit id,如果你已經(jīng)清過(guò)屏了,但它被沖掉了也沒(méi)后悔藥了
git reflog
根據(jù)提交狀態(tài),可分為如下三種情況:
- 撤銷工作區(qū)
你當(dāng)然手動(dòng)改咯,但是!太容易改出bug了,你寫了一段時(shí)間你都不記得你干了啥了
回到最近一次add/commit狀態(tài)
git checkout -- [FILE]
所以學(xué)會(huì)版本控制真的很重要,哎想當(dāng)年我手動(dòng)回滾相當(dāng)痛苦了
- 撤銷工作區(qū)和暫存區(qū)
reset還可以回退到版本區(qū)的當(dāng)前版本,回退暫存區(qū)
git reset HEAD [file]
HEAD
當(dāng)前版本,HEAD^
上一版本,HEAD^^
…
這樣就回到了場(chǎng)景1
git checkout -- [FILE]
- 撤銷工作區(qū),暫存區(qū)和版本庫(kù)
git reset --hard HEAD^
1.6 刪除文件
刪除版本庫(kù)中的文件
刪除工作區(qū)中內(nèi)容 - 將變動(dòng)提交到暫存區(qū) - 提交至版本庫(kù)
rm [file]
git add [file]
git commit -m "delete file"
我們可以將前兩條簡(jiǎn)化為一條命令
git rm [file]
git commit -m "delete file"
2. 分支管理
- 日常開(kāi)發(fā)的代碼并未經(jīng)過(guò)測(cè)試驗(yàn)證
- 多人協(xié)作開(kāi)發(fā)
2.1 分支的創(chuàng)建,刪除,切換,合并
查看當(dāng)前倉(cāng)庫(kù)有幾個(gè)本地分支
git branch
HEAD可以指向其他任何分支(不止master),指向的就是工作分支(前面有*
)
分支的創(chuàng)建
站在當(dāng)前最新版本上創(chuàng)建分支
git branch [dev]
分支的切換
git checkout [dev]
也可以用一條命令來(lái)解決
git checkout -b dev
分支的合并
git checkout master
git merge dev
分支的刪除
必須在其它分支上刪除dev
分支,我們鼓勵(lì)刪除無(wú)用的(已完成任務(wù))的分支
git branch -d dev
2.2 合并沖突
我們最有可能在merge過(guò)程中產(chǎn)生沖突
無(wú)法確定保留那個(gè),打開(kāi)[file],需要手工解決
可以清晰看到記錄 ——
git log --graph --abbrev-commit
3. 遠(yuǎn)程操作
如上所有內(nèi)容都是在本地完成的!那么Git是分布式版本控制系統(tǒng)文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-501497.html
“中央服務(wù)器”倉(cāng)庫(kù)(遠(yuǎn)程倉(cāng)庫(kù)) —— 用來(lái)交換修改,推送-拉取文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-501497.html
-
issue
:用來(lái)和倉(cāng)庫(kù)的管理者溝通issue的,那么我科研也對(duì)github issue數(shù)量進(jìn)行了調(diào)研 -
pull request
:實(shí)際上我們不允許直接merge的,那我們先要提交“合并申請(qǐng)單”
3.1 克隆倉(cāng)庫(kù)
到了這里,關(guān)于GIT —— 基本操作,分支管理,遠(yuǎn)程操作的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!