git命令

一: 分支策略
在實(shí)際開發(fā)中室抽,我們應(yīng)該按照幾個(gè)基本原則進(jìn)行分支管理:
首先,master分支應(yīng)該是非常穩(wěn)定的靡努,也就是僅用來發(fā)布新版本坪圾,平時(shí)不能在上面干活;
那在哪干活呢惑朦?干活都在dev分支上兽泄,也就是說,dev分支是不穩(wěn)定的漾月,到某個(gè)時(shí)候病梢,比如1.0版本發(fā)布時(shí),再把dev分支合并到master上梁肿,在master分支發(fā)布1.0版本蜓陌;
你和你的小伙伴們每個(gè)人都在dev分支上干活,每個(gè)人都有自己的分支吩蔑,時(shí)不時(shí)地往dev分支上合并就可以了

  1. Git鼓勵(lì)大量使用分支:
    查看分支:git branch
    查看遠(yuǎn)程分支: git branch -a
    創(chuàng)建分支:git branch <name>
    切換分支:git checkout <name>
    創(chuàng)建+切換分支:git checkout -b <name>
    合并某分支到當(dāng)前分支:git merge <name>
    合并分支代碼的內(nèi)容查看:git merge --no-ff -m '合并ysdev的H5中的跳轉(zhuǎn)' ysdev
    刪除分支:git branch -d <name>
    刪除遠(yuǎn)程不存在的本地分支:git fetch -p
    合并分支時(shí)钮热,加上--no-ff參數(shù)就可以用普通模式合并,合并后的歷史有分支烛芬,能看出來曾經(jīng)做過合并

  2. 用git log --graph命令可以看到分支合并圖
    帶參數(shù): git log --graph --pretty=oneline --abbrev-commit
    向前查看log日志: git ref-log

  3. git checkout -b 本地分支名 origin/遠(yuǎn)程分支名 從遠(yuǎn)程指定分支拉取到當(dāng)前新建分支

  4. git add -A 提交所有變化
    git add -u 提交被修改(modified)和被刪除(deleted)文件隧期,不包括新文件(new)
    git add . 提交新文件(new)和被修改(modified)文件痴奏,不包括被刪除(deleted)文件

  5. 推送本地分支 local_dev 到遠(yuǎn)程分支 dev 并建立關(guān)聯(lián)關(guān)系
    ①遠(yuǎn)程已有 dev 分支并且已經(jīng)關(guān)聯(lián)本地分支local_dev且本地已經(jīng)切換到local_dev
    git push
    ②遠(yuǎn)程已有 dev 分支但未關(guān)聯(lián)本地分支local_dev且本地已經(jīng)切換到local_dev
    git push -u origin/dev
    ③遠(yuǎn)程沒有有 dev 分支, 并本地已經(jīng)切換到local_dev
    git push origin local_dev:dev

  6. 修改分支名稱
    git branch -m oldName newName

  7. 別名
    git config --global alias.co checkout
    //自定義打印log
    git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -
    %C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"

8.強(qiáng)制性推動(dòng)代碼
錯(cuò)誤信息如下:error: src refspec development does not match any.
error: failed to push some refs to 'https://gitee.com/liuchengding/YiBangAppiOS.git'
解決方案:git push origin HEAD:[branch]
9.提交一個(gè)空的文件路徑,其他人拉代碼時(shí)沒有該文件目錄厌秒,
解決方案:在終端读拆,cd 文件路徑,然后執(zhí)行 find . -type d -empty -exec touch {}/.gitignore ;
10.刪除遠(yuǎn)程不存在的本地分支:
git remote prune origin

11.回到制定提交的commit上
git reset --hard commitID

  1. 版本回退
    問題描述: 當(dāng)正在開發(fā)新功能時(shí), 發(fā)現(xiàn)上一個(gè)發(fā)布的版本有bug,需要修復(fù)上線.此時(shí)要回退發(fā)布的版本去修改.

特別注意:
如果這個(gè)時(shí)候你立馬投入與bug的戰(zhàn)斗鸵闪,修改后發(fā)版本檐晕,那么你就犯了嚴(yán)重的錯(cuò)誤,因?yàn)槟阈薷暮蟮拇a是無法與正在開發(fā)的版
本合并噠蚌讼,也就是說你的修改并不能加入現(xiàn)有的代碼辟灰。所以:
通過標(biāo)簽回退版本后,要馬上拉一個(gè)分支篡石,然后當(dāng)前主干分支要立即回到原來的位置芥喇,否則正在開發(fā)的代碼可能白干了,接著
在剛拉的分支上修改bug凰萨,修改完畢合并到主干上
步驟: 1. 回退版本后继控,立即拉取分支,這里取名bugfix分支
2. 主干分支立即回到原來的位置
3. 切換到bugfix分支胖眷,修改bug
4. 修改后合并到主干上
5. 解決沖突, 打標(biāo)簽, 推送遠(yuǎn)程

  1. 丟棄本地修改
    git checkout xxx(表示文件路徑)

二.應(yīng)對(duì)的問題

  1. 出現(xiàn)fatal: refusing to merge unrelated histories
    需要允許合并 git pull --allow-unrelated-histories

  2. 出現(xiàn)git branch --set-upstream-to=origin/<branch> master
    則需要遠(yuǎn)程和本地倉庫關(guān)聯(lián): git branch --set-upstream-to=origin/遠(yuǎn)程倉庫 本地倉庫

  3. Git關(guān)于忽略Xcode工程中UserInterfaceState.xcuserstate文件
    在忽略文件中加入:
    project.xcworkspace
    xcuserdata
    UserInterfaceState.xcuserstate
    project.xcworkspace/
    xcuserdata/
    UserInterface.xcuserstate
    然后:
    git rm --cached [YourProjectName].xcodeproj/project.xcworkspace/xcuserdata/
    [ YourUsername].xcuserdatad/UserInterfaceState.xcuserstate
    提交: git commit -m "Removed file that shouldn't be tracked"

//git命令鏈接地址
https://gitee.com/all-about-git

六武通、標(biāo)簽

列出所有tag

$ git tag

新建一個(gè)tag在指定commit

 git tag V1.6.0 9d4b6557f67a0c43155cd665a5fdeec60d17a9d4

$

提交所有tag

$ git push [remote] --tags

七。強(qiáng)制推送本地代碼到git倉庫
進(jìn)到項(xiàng)目本地
然后

  1. git init
  2. git add .
  3. git commit -am “###” ——-以上3步只是本地提交
    4.git remote add origin git@xx.xx.xx.xx:repos/xxx/xxx/xxx.git
    5.git push origin 本 地分支:遠(yuǎn)程分支
    6 git push -u origin master -f 強(qiáng)制push

八:提交git 超過100MB問題珊搀。解決如下:
終端執(zhí)行命令:git filter-branch -f --prune-empty --index-filter 'git rm -rf --cached --ignore-unmatch 超過100MB的文件名稱' --tag-name-filter cat -- --all

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末冶忱,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子境析,更是在濱河造成了極大的恐慌囚枪,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,888評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件劳淆,死亡現(xiàn)場(chǎng)離奇詭異链沼,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)憔儿,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,677評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門忆植,熙熙樓的掌柜王于貴愁眉苦臉地迎上來放可,“玉大人谒臼,你說我怎么就攤上這事∫铮” “怎么了蜈缤?”我有些...
    開封第一講書人閱讀 168,386評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長冯挎。 經(jīng)常有香客問我底哥,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,726評(píng)論 1 297
  • 正文 為了忘掉前任趾徽,我火速辦了婚禮续滋,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘孵奶。我一直安慰自己疲酌,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,729評(píng)論 6 397
  • 文/花漫 我一把揭開白布了袁。 她就那樣靜靜地躺著朗恳,像睡著了一般。 火紅的嫁衣襯著肌膚如雪载绿。 梳的紋絲不亂的頭發(fā)上粥诫,一...
    開封第一講書人閱讀 52,337評(píng)論 1 310
  • 那天,我揣著相機(jī)與錄音崭庸,去河邊找鬼怀浆。 笑死,一個(gè)胖子當(dāng)著我的面吹牛怕享,可吹牛的內(nèi)容都是我干的揉稚。 我是一名探鬼主播,決...
    沈念sama閱讀 40,902評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼熬粗,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼搀玖!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起驻呐,我...
    開封第一講書人閱讀 39,807評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤灌诅,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后含末,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體猜拾,經(jīng)...
    沈念sama閱讀 46,349評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,439評(píng)論 3 340
  • 正文 我和宋清朗相戀三年佣盒,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了挎袜。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,567評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡肥惭,死狀恐怖盯仪,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情蜜葱,我是刑警寧澤全景,帶...
    沈念sama閱讀 36,242評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站牵囤,受9級(jí)特大地震影響爸黄,放射性物質(zhì)發(fā)生泄漏滞伟。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,933評(píng)論 3 334
  • 文/蒙蒙 一炕贵、第九天 我趴在偏房一處隱蔽的房頂上張望梆奈。 院中可真熱鬧,春花似錦称开、人聲如沸鉴裹。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,420評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽径荔。三九已至,卻和暖如春脆霎,著一層夾襖步出監(jiān)牢的瞬間总处,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,531評(píng)論 1 272
  • 我被黑心中介騙來泰國打工睛蛛, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留鹦马,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,995評(píng)論 3 377
  • 正文 我出身青樓忆肾,卻偏偏與公主長得像荸频,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子客冈,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,585評(píng)論 2 359