git常用操作

git常用操作

git rebase

git checkout bat
git rebase origin #把"bat"分支里的每個提交(commit)取消掉,并且把它們臨時 #保存為補丁(patch)(這些補丁放到".git/rebase"目錄中),然后把"bat"分支更新
#為最新的"origin"分支承匣,最后把保存的這些補丁應(yīng)用到"mywork"分支上

git rebase和git merge的區(qū)別
merge相當于將雙方的修改綜合
rebase相當于將對方修改之后,在提交自己的修改,結(jié)果一樣

git clone 取回遠程的所有分支

git clone git@github.com:dolymood/angular-example.git #獲取某個遠程庫
git fetch <遠程主機名>  <分支名> #獲取全部的分支 如果需要特定分支 可指定分支名
git branch -a #查看所有分支 git branch -a 查看所有分支
git checkout -b newBrach <遠程分支> #創(chuàng)建并且切換到新的分支

返回某個文件的某個版本

git log 文件名 #查看某個文件的歷史記錄 可以加參數(shù)-p查看diff   獲取commit id
git reset commitid 文件名 #返回該文件的當前的版本雳灾,會在緩存區(qū)
git checkout 文件名 #返回之前的版本

#可以用git reflog 查看所有的版本信息
#git log --pretty=oneline filename 通過一行查看單個文件的提交情況
#git show commitid 查看該提交id的修改情況
#git log --stat 很好用,只看每次提交的增減

跳轉(zhuǎn)到某個版本

git reflog #查看所有版本信息
git reset --hard commitid #重置到某個特定的版本

刪除文件

git rm filename   直接刪除文件
git rm --cached filename   刪除文件暫存狀態(tài)

創(chuàng)建分支

git branch develop // 只創(chuàng)建分支
git checkout -b master develop // 創(chuàng)建并切換到 develop 分支

設(shè)置 commit 的用戶和郵箱

git config user.name "xx"
git config user.email "xx@xx.com"
git config --global color.ui true #git 顯示顏色

Git設(shè)置

Git的全局設(shè)置在~/.gitconfig中傀蚌,單獨設(shè)置在project/.git/config下蹦漠。

忽略設(shè)置全局在~/.gitignore_global中戚嗅,單獨設(shè)置在project/.gitignore下。

//設(shè)置提交的時候是否轉(zhuǎn)換換行符號
git config [--global] core.autocrlf = [true|false|input]
true  : 將crlf轉(zhuǎn)換為lf衍菱,而在檢出時將crlf轉(zhuǎn)換為lf.
false : 不轉(zhuǎn)換.
input : 提交時將crlf轉(zhuǎn)換成lf赶么,檢出時不轉(zhuǎn)換.

git clean 指令

git clean -f #刪除未跟蹤的文件
  參數(shù)n:查看刪除哪些文件
  參數(shù)x:將gitignore的文件刪除,一般不用
  參數(shù)d:刪除未跟蹤的目錄

gitignore生效

#中途加進.gitignore的文件或文件夾不會生效
git rm -r --cached .#之前已經(jīng)在版本管理中了,需要刪除本地緩存脊串,在提交
git add .
git commit -m"add"

git add submodule

git submodule add git@github.com:zlxbuzz/gulp.git ./gulp

##刪除模塊
1 .gitmodules的模塊信息
2 git rm –cached gulp

git 更新submodule

#可以寫一個submoduleupdate.sh 的腳本
git submodule init
git submodule update
git submodule foreach --recursive 'branch="$(git config -f $toplevel/.gitmodules submodule.$name.branch)"; git checkout $branch'
git submodule foreach --recursive "git submodule update"

echo "Pulling all git submodules..."
git submodule foreach --recursive 'branch="$(git config -f $toplevel/.gitmodules submodule.$name.branch)"; git pull origin $branch'

git blame 查看每行提交

git blame [選項] [版本選項] [版本] [--] 文件
    --incremental         增量式地顯示發(fā)現(xiàn)的 blame 條目
    -b                    邊界提交顯示空的 SHA-1(默認:關(guān)閉)
    --root                不把根提交作為邊界(默認:關(guān)閉)
    --show-stats          顯示命令消耗統(tǒng)計
    --score-debug         顯示判斷 blame 條目位移的得分診斷信息
    -f, --show-name       顯示原始文件名(默認:自動)
    -n, --show-number     顯示原始的行號(默認:關(guān)閉)
    -p, --porcelain       顯示為一個適合機器讀取的格式
    --line-porcelain      為每一行顯示機器適用的提交信息
    -c                    使用和 git-annotate 相同的輸出模式(默認:關(guān)閉)
    -t                    顯示原始時間戳(默認:關(guān)閉)
    -l                    顯示長的SHA1提交號(默認:關(guān)閉)
    -s                    隱藏作者名字和時間戳(默認:關(guān)閉)
    -e, --show-email      顯示作者的郵箱而不是名字(默認:關(guān)閉)
    -w                    忽略空白差異
    --minimal             花費額外的循環(huán)來找到更好的匹配
    -S <文件>             使用來自 <file> 的修訂集而不是調(diào)用 git-rev-list
    --contents <文件>     使用 <file> 的內(nèi)容作為最終的圖片
    -C[<得分>]            找到文件內(nèi)及跨文件的行拷貝
    -M[<得分>]            找到文件內(nèi)及跨文件的行移動
    -L <n,m>              只處理行范圍在 n 和 m 之間的辫呻,從 1 開始
    --abbrev[=<n>]        用 <n> 位數(shù)字顯示 SHA-1 哈希值

git add

用法:git add [選項] [--] <路徑規(guī)則>...

    -n, --dry-run         演習
    -v, --verbose         冗長輸出

    -i, --interactive     交互式揀選
    -p, --patch           交互式挑選數(shù)據(jù)塊
    -e, --edit            編輯當前差異并應(yīng)用
    -f, --force           允許添加忽略的文件
    -u, --update          更新已跟蹤的文件
    -N, --intent-to-add   只記錄,該路徑稍后再添加
    -A, --all             添加所有改變的已跟蹤文件和未跟蹤文件
    --ignore-removal      忽略工作區(qū)中移除的路徑(和 --no-all 相同)
    --refresh             不添加琼锋,只刷新索引
    --ignore-errors       跳過因出錯不能添加的文件
    --ignore-missing      檢查在演習模式下文件(即使不存在)是否被忽略

    git  add .  #新文件+修改的文件
    git  add -u #修改的文件或刪除的文件
    git  add -A # 所有新文件和修改的文件放闺,刪除的文件

git push

git push origin --delete dev #刪除遠程分支

git flow

分支使用
master
與線上版本保持同步,代碼和功能質(zhì)量滿足實際發(fā)布環(huán)境需要
不直接接收任何代碼commit缕坎。
接收來自release怖侦、hotfix分支的merge。
版本的tag也在此分支進行定義
develop
接收來自其他功能谜叹、特性開發(fā)分支(feature)的merge匾寝。
feature
具體功能、特性的工作分支族荷腊,大部分的commit在此類分支上完成艳悔。
完成開發(fā)后,分支merge到develop分支停局,具體feature分支刪除很钓。
release
用于版本發(fā)布的分支香府,在確定版本計劃后從develop分支建立董栽。
用于版本的測試、問題修復工作企孩,接收bug修復的commit锭碳。
完成測試和開發(fā)后,分支merge到develop和master分支勿璃。
hotfix
用于在master分支發(fā)現(xiàn)實際環(huán)境中問題進行修復擒抛,接收修復commit。
完成后merge回master分支并且merge到develop分支补疑。
master分支需要進行修復版本tag的定義歧沪。

git 對比兩個tag,并且排除某些目錄

 git diff 1.1.1.179...1.1.1.182 -- . ':!dist' ':!lib'
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末莲组,一起剝皮案震驚了整個濱河市诊胞,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌锹杈,老刑警劉巖撵孤,帶你破解...
    沈念sama閱讀 222,590評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件迈着,死亡現(xiàn)場離奇詭異,居然都是意外死亡邪码,警方通過查閱死者的電腦和手機裕菠,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來闭专,“玉大人奴潘,你說我怎么就攤上這事∮岸ぃ” “怎么了萤彩?”我有些...
    開封第一講書人閱讀 169,301評論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長斧拍。 經(jīng)常有香客問我雀扶,道長,這世上最難降的妖魔是什么肆汹? 我笑而不...
    開封第一講書人閱讀 60,078評論 1 300
  • 正文 為了忘掉前任愚墓,我火速辦了婚禮,結(jié)果婚禮上昂勉,老公的妹妹穿的比我還像新娘浪册。我一直安慰自己,他們只是感情好岗照,可當我...
    茶點故事閱讀 69,082評論 6 398
  • 文/花漫 我一把揭開白布村象。 她就那樣靜靜地躺著,像睡著了一般攒至。 火紅的嫁衣襯著肌膚如雪厚者。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,682評論 1 312
  • 那天迫吐,我揣著相機與錄音库菲,去河邊找鬼。 笑死志膀,一個胖子當著我的面吹牛熙宇,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播溉浙,決...
    沈念sama閱讀 41,155評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼烫止,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了戳稽?” 一聲冷哼從身側(cè)響起馆蠕,我...
    開封第一講書人閱讀 40,098評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后荆几,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體吓妆,經(jīng)...
    沈念sama閱讀 46,638評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,701評論 3 342
  • 正文 我和宋清朗相戀三年吨铸,在試婚紗的時候發(fā)現(xiàn)自己被綠了行拢。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,852評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡诞吱,死狀恐怖舟奠,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情房维,我是刑警寧澤沼瘫,帶...
    沈念sama閱讀 36,520評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站咙俩,受9級特大地震影響耿戚,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜阿趁,卻給世界環(huán)境...
    茶點故事閱讀 42,181評論 3 335
  • 文/蒙蒙 一膜蛔、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧脖阵,春花似錦皂股、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,674評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至悍募,卻和暖如春蘑辑,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背搜立。 一陣腳步聲響...
    開封第一講書人閱讀 33,788評論 1 274
  • 我被黑心中介騙來泰國打工以躯, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留槐秧,地道東北人啄踊。 一個月前我還...
    沈念sama閱讀 49,279評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像刁标,于是被迫代替她去往敵國和親颠通。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,851評論 2 361

推薦閱讀更多精彩內(nèi)容

  • 獲取與創(chuàng)建項目 創(chuàng)建倉庫的途徑有:在本地已有的目錄膀懈,初始化一個新的顿锰;克隆復制一份別人的項目。 git init 在...
    daking閱讀 6,595評論 3 48
  • 常用命令: 查看、添加硼控、提交刘陶、刪除、找回牢撼,重置修改文件 git help # 顯示command的help gi...
    even_cheng閱讀 288評論 0 3
  • 1)遠程倉庫相關(guān)命令 檢出倉庫:$ git clone git://github.com/jquery/jquer...
    Jeff_Tsui閱讀 337評論 0 0
  • 申明:本文資料是從網(wǎng)絡(luò)上收集而成匙隔,只是單單做為記錄,方便日后翻閱熏版。 **初始化操作 ** git config...
    _Justin閱讀 479評論 0 0
  • 2017.11.28 星期二 多云 親子日記(213) 今天早晨一家三口在一塊兒吃纷责,還說吃了飯就把學校的飯錢拿著,...
    于澤媽媽閱讀 174評論 0 2