git clone <版本庫(kù)的網(wǎng)址>
git clone <版本庫(kù)的網(wǎng)址> <本地目錄名>
1. 查看用戶名和郵箱地址:
$ git config user.name
$ git config user.email
2. 修改用戶名和郵箱地址:
$ git config --global user.name "username"
$ git config --global user.email "email"
1、(先進(jìn)入項(xiàng)目文件夾)通過(guò)命令 git init 把這個(gè)目錄變成git可以管理的倉(cāng)庫(kù)
git init
2绣夺、把文件添加到版本庫(kù)中吗货,使用命令 git add .添加到暫存區(qū)里面去冷蚂,不要忘記后面的小數(shù)點(diǎn)“.”,意為添加文件夾下的所有文件
git add .
3驮瞧、用命令 git commit告訴Git,把文件提交到倉(cāng)庫(kù)。引號(hào)內(nèi)為提交說(shuō)明
git commit -m 'first commit'
4惯驼、關(guān)聯(lián)到遠(yuǎn)程庫(kù)
git remote add origin 你的遠(yuǎn)程庫(kù)地址
如:
git remote add origin https://github.com/cade8800/ionic-demo.git
5、獲取遠(yuǎn)程庫(kù)與本地同步合并(如果遠(yuǎn)程庫(kù)不為空必須做這一步递瑰,否則后面的提交會(huì)失斔钌)
git pull --rebase origin master
6、把本地庫(kù)的內(nèi)容推送到遠(yuǎn)程泣矛,使用 git push命令疲眷,實(shí)際上是把當(dāng)前分支master推送到遠(yuǎn)程。執(zhí)行此命令后會(huì)要求輸入用戶名您朽、密碼狂丝,驗(yàn)證通過(guò)后即開始上傳。
git push -u origin master
*哗总、狀態(tài)查詢命令
git status
.gitignore 體檢忽略內(nèi)容
使用git pull代碼時(shí)几颜,經(jīng)常會(huì)碰到有沖突的情況,提示如下信息:
error: Your local changes to 'c/environ.c' would be overwritten by merge.? Aborting.
Please, commit your changes or stash them before you can merge.
這個(gè)意思是說(shuō)更新下來(lái)的內(nèi)容和本地修改的內(nèi)容有沖突讯屈,先提交你的改變或者先將本地修改暫時(shí)存儲(chǔ)起來(lái)蛋哭。
處理的方式非常簡(jiǎn)單,主要是使用git stash命令進(jìn)行處理涮母,分成以下幾個(gè)步驟進(jìn)行處理谆趾。
1躁愿、先將本地修改存儲(chǔ)起來(lái)
$ git stash
這樣本地的所有修改就都被暫時(shí)存儲(chǔ)起來(lái) 。是用git stash list可以看到保存的信息:
git stash暫存修改
其中stash@{0}就是剛才保存的標(biāo)記沪蓬。
2彤钟、pull內(nèi)容
暫存了本地修改之后,就可以pull了跷叉。
$ git pull
3逸雹、還原暫存的內(nèi)容
$ git stash pop stash@{0}
系統(tǒng)提示如下類似的信息:
Auto-merging c/environ.c
CONFLICT (content): Merge conflict in c/environ.c
意思就是系統(tǒng)自動(dòng)合并修改的內(nèi)容,但是其中有沖突云挟,需要解決其中的沖突梆砸。
4、解決文件中沖突的的部分
打開沖突的文件园欣,會(huì)看到類似如下的內(nèi)容:
git沖突內(nèi)容
其中Updated upstream 和=====之間的內(nèi)容就是pull下來(lái)的內(nèi)容帖世,====和stashed changes之間的內(nèi)容就是本地修改的內(nèi)容。碰到這種情況俊庇,git也不知道哪行內(nèi)容是需要的狮暑,所以要自行確定需要的內(nèi)容。
解決完成之后辉饱,就可以正常的提交了搬男。
Git status中文轉(zhuǎn)義
git config --global core.quotepath false
在 git log 時(shí)中文依然不能顯示,首先試試用 git --no-pager log 能不能顯示中文彭沼,如果可以缔逛,則設(shè)置pager為more:
git config --global core.pager more
在git push的時(shí)候,有時(shí)候我們會(huì)想辦法撤銷git commit的內(nèi)容?
1姓惑、找到之前提交的git commit的id?
git log?
找到想要撤銷的id?
2褐奴、git reset –hard id?
完成撤銷,同時(shí)將代碼恢復(fù)到前一commit_id 對(duì)應(yīng)的版本?
3、git reset id?
完成Commit命令的撤銷于毙,但是不對(duì)代碼修改進(jìn)行撤銷敦冬,可以直接通過(guò)git commit 重新提交對(duì)本地代碼的修改
git fetch --all //只是下載代碼到本地,不進(jìn)行合并操作
git reset --hard origin/master? //把HEAD指向最新下載的版本
12.1 GIT 操作規(guī)范:
1. 從主倉(cāng)庫(kù)Fork 一個(gè)自己的倉(cāng)庫(kù)
2. Git clone 自己名下的倉(cāng)庫(kù)唯沮, 就可以開發(fā)啦
3. 提交代碼步驟:
○ 先 git commit 至本地(請(qǐng)?jiān)赾ommit message 中盡量詳細(xì)地描述本次提交修改的內(nèi)容脖旱,至少說(shuō)明是對(duì)哪一模塊哪一功能的什么修改)
○ 再 push 至自己名下的倉(cāng)庫(kù)(完成后請(qǐng)登進(jìn)個(gè)人倉(cāng)庫(kù)頁(yè)面檢查,確保push 成功)
○ 成功后提交 pull request介蛉, 將自己名下的倉(cāng)庫(kù)與主倉(cāng)庫(kù)合并(現(xiàn)階段萌庆,提交完合并申請(qǐng)后請(qǐng)自己通過(guò)該申請(qǐng),完成后檢查一下主倉(cāng)庫(kù)币旧,確保自己的最新代碼已經(jīng)成功合并至主倉(cāng)庫(kù))
4. 沖突解決: Push 代碼之前践险,先同步遠(yuǎn)程主倉(cāng)庫(kù)與本地代碼,再push至自己名下的倉(cāng)庫(kù)(注意不能直接往主倉(cāng)庫(kù)push),具體操作方式如下:
○ git remote add upstream git@github.com:coreos/etcd.git //本地添加遠(yuǎn)程主分支(將 git@github.com:coreos/etcd.git 替換為主分支的地址)巍虫,叫upstream彭则。?可以先 git branch -v 查看是否已添加遠(yuǎn)程分支,若已添加占遥,該步驟略過(guò)贰剥。
○ git fetch upstream // 獲取主分支的最新修改到本地
○ git merge upstream/master // 將upstream分支修改內(nèi)容merge到本地個(gè)人分支
git push // 將本地修改提交到fork出來(lái)的個(gè)人分支?至此,主分支修改的代碼完全同步到fork出來(lái)的個(gè)人分支上筷频,后續(xù)在個(gè)人分支上修改提交pull request時(shí)就不會(huì)沖突。完美