git基本操作、stash暫存、stash找回、創(chuàng)建分支、刪除分支、git忽略文件失效、合并分支、重定向項(xiàng)目地址

git 基本操作流程

git status 查看本次的修改、新建、刪除等信息(new file:新建文件,modified:修改文件,deleted: 刪除的文件)
git pull 拉取代碼;
git add . 添加所有即將提交的文件,
git add fileNamePath添加某個(gè)文件
git commit -'提交的日志' 提交到本地,
git push 提交到git服務(wù)器;
git 另一種提交方式,
git commit -a -m '提交的日志' 添加所有即將提交的文件并提交到本地 ,
git commit -a -m 相當(dāng)于git add .git commi -' '命令的集合,當(dāng)你使用git commit -a -m ' '命令時(shí),就會(huì)執(zhí)行上述兩個(gè)操作;


git 暫存

使用暫存的好處是,提交時(shí)不會(huì)產(chǎn)生類似

(Merge branch 'prd_v1.5' of http://...*/bb_ios/bbch**** into prd_v1.5)

的日志,且安全可靠,會(huì)盡量避免將錯(cuò)誤提交到服務(wù)器上面。

git stash暫存(存儲(chǔ)在本地,并將項(xiàng)目本次操作還原)
git stash pop 使用上一次暫存,并將這個(gè)暫存刪除,使用該命令后,如果有沖突,終端會(huì)顯示,如果有沖突需要先解決沖突(這就避免了沖突提交服務(wù)器,將沖突留在本地,然后解決)
git stash list 查看所有的暫存
git stash clear 清空所有的暫存
git stash drop [-q|--quiet] [<stash>] 刪除某一個(gè)暫存,在中括號(hào)里面放置需要?jiǎng)h除的暫存ID
git stash apply 使用某個(gè)暫存,但是不會(huì)刪除這個(gè)暫存


暫存不小心清空,結(jié)果里面有需要的代碼,也是有找回方法的

git fsck --lost-found 命令找出剛才刪除的分支里面的提交對(duì)象。
然后使用 git show 命令查看是否正確,如果正確使用git merge命令找回

舉個(gè)栗子??:
git fsck --lost-found
終端顯示

Checking object directories: 100% (256/256), done.

Checking objects: 100% (109977/109977), done.

dangling commit bb01f8dfaa14ea7960d294304c61c4b401eaf2c6

dangling commit 0203281d5dee10835022ff6cfdcda5050a372762

然后查看那個(gè)版本
git show bb01f8dfaa14ea7960d294304c61c4b401eaf2c6
結(jié)果查看圖1

記錄中會(huì)描述日期和摘要,日期是你git stash的日期,摘要會(huì)記錄你是在哪一條commit 上進(jìn)行g(shù)it stash操作的,找到后將執(zhí)行 git merge bb01f8dfaa14ea7960d294304c61c4b401eaf2c6

圖1

git 創(chuàng)建本地分支并推送到服務(wù)器

創(chuàng)建并切換到分支branchName
git checkout -b branchName

推送本地的branchName(冒號(hào)前面的)分支到遠(yuǎn)程origin的branchName(冒號(hào)后面的)分支(沒有會(huì)自動(dòng)創(chuàng)建)

git push origin branchName:branchName

在這樣的命令下,如果你本地有代碼,會(huì)自動(dòng)切換到新的分支上,所以不必?fù)?dān)心,你修改很多之后,從新創(chuàng)建分支會(huì)出現(xiàn)正常切換分支因?yàn)橛形刺峤坏拇a而創(chuàng)建不成功的情況.

發(fā)現(xiàn)問題
如果命令行提示git branch --set-upstream dev origin/branchName則需在終端輸入git push -u origin branchName

刪除分支

刪除本地分支: git branch -d [branchname]
刪除遠(yuǎn)程分支: git push origin --delete [branchname]

git忽略文件

生成git忽略文件.gitignore文件,使用終端進(jìn)入到你要生成.gitignore的目錄,使用命令touch .gitignore,就會(huì)生成。

下面是.gitignore的常用規(guī)則:

  • /mtk/ 過濾整個(gè)文件夾

  • *.zip過濾所有.zip文件

  • /mtk/do.c 過濾某個(gè)具體文件

這樣文件或者文件夾就被過濾了,當(dāng)然本地庫中還有,只是push的時(shí)候不會(huì)上傳。

.gitignore還可以指定要將哪些文件添加到版本管理中:

  • !*.zip

  • !/mtk/one.txt

如果你將文件加入到了.gitignore文件里面,但是沒有說生效,為什么呢?因?yàn)橹澳阋呀?jīng)把這個(gè)文件push到過遠(yuǎn)程倉庫了,請(qǐng)使用以下命令

git rm --cached `git ls-files -i --exclude-from=.gitignore`

經(jīng)過我?guī)状螌?shí)驗(yàn)之后發(fā)現(xiàn),上述命令在之前沒有創(chuàng)建.gitignore文件但是已經(jīng)向服務(wù)器push過代碼的時(shí)候好使,但是在已經(jīng)使用過這個(gè)命令后,由于其他分支并沒有添加忽略文件,合并分支后,忽略文件失效,那么上述命令可能失效,那么先把本地緩存刪除(改變成未track狀態(tài)),然后再提交,方案如下

git rm -r --cached .
git add .
git commit -m '日志'

要記得,因?yàn)楦淖兞艘恍〇|西,所以要從新pod install 然后提交代碼,但是要使用git status查看狀態(tài),比如已經(jīng)忽略了Podfile.lock,那么查看時(shí)沒有Podfile.lock那就是好了。

合并分支

場(chǎng)景如下:
例如現(xiàn)在有分支master和分支A,要將分支A的代碼合并到master
第一步:切換到分支master,在終端輸入命令

git checkout master 

第二步:合并分支

git merge --no-ff -m 'version:3.0.5_buildL19011720' A

第三步:如果有沖突解決沖突,解決沖突后add . -> git commit -m '提交原因'
第四步:

git push

部分摘自自己的博客http://www.itdecent.cn/p/1d5c5ed615d3,新文章使用Mac down書寫

重定向項(xiàng)目地址

第一種方法

第一步:cd到項(xiàng)目目錄下
第二步 :

git remote set-url origin 新項(xiàng)目地址
//例如新項(xiàng)目地址是 www.itdecent.cn,示例如下
git remote set-url origin www.itdecent.cn

第二種方法

第一步:cd到項(xiàng)目目錄下
第二步:執(zhí)行命令cd .git
第三步:執(zhí)行命令open config
第四步:將新項(xiàng)目地址替換到圖2 紅條覆蓋位置

圖2

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Git 基礎(chǔ) 基本原理 客戶端并不是只提取最新版本的文件快照,而是把代碼倉庫完整的鏡像下來。這樣一來,任何一處協(xié)同...
    __silhouette閱讀 16,197評(píng)論 5 147
  • Git 命令行學(xué)習(xí)筆記 Git 基礎(chǔ) 基本原理 客戶端并不是只提取最新版本的文件快照,而是把代碼倉庫完整的鏡像下來...
    sunnyghx閱讀 4,152評(píng)論 0 11
  • 一、電腦本地初始化一個(gè)倉庫 1. git init: 初始化一個(gè)電腦上本地倉庫 終端進(jìn)入項(xiàng)目目錄,輸入: 該命令將...
    dragon_li閱讀 3,121評(píng)論 1 4
  • 千里之行第二步 初中的第一頓早餐 2016年9月1日,娃上初中第一天。為了有一個(gè)好的開始,親手做早餐是必須的。為了...
    lhw8432037閱讀 452評(píng)論 0 0
  • 文Ⅰ77若初 早晨起來發(fā)現(xiàn)天兒開始下雨了,有些后悔昨日午后沒去樓上撒菜種,上午清理了幾小塊兒地,撒了水,也翻了土,...
    若初的清明覺知閱讀 616評(píng)論 17 58

友情鏈接更多精彩內(nèi)容