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
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 紅條覆蓋位置
