佳木斯湛栽影视文化发展公司

主頁 > 知識(shí)庫(kù) > Linux系統(tǒng)下Git操作命令整理

Linux系統(tǒng)下Git操作命令整理

熱門標(biāo)簽:家政服務(wù)網(wǎng)絡(luò) 硅谷的囚徒呼叫中心 電話機(jī)器人搭建 百度競(jìng)價(jià)點(diǎn)擊價(jià)格的計(jì)算公式 外呼系統(tǒng) 服務(wù)器配置 美團(tuán) 解決方案

1.顯示當(dāng)前的配置信息

復(fù)制代碼
代碼如下:

git config --list

2. 創(chuàng)建repo
從別的地方獲取
復(fù)制代碼
代碼如下:

git clone git://git.kernel.org/pub/scm/git/git.git


自己建立

復(fù)制代碼
代碼如下:

mkdir test
cd test
git init

 
3. 顯示狀態(tài)

復(fù)制代碼
代碼如下:
git status

 
4. commit
git add file.1 file.2 先增加文件,增加到index中。這樣commit的時(shí)候才知道要commit哪些文件。
或者

復(fù)制代碼
代碼如下:
git add -p
用來interactively選擇哪些改變需要被commit

復(fù)制代碼
代碼如下:
git commit -m "log message"

 
或者

復(fù)制代碼
代碼如下:
git commit -a
自動(dòng)檢查應(yīng)該commit什么文件。如果是新增的文件,仍然要使用git add來添加。
 
5. 顯示以前的工作

復(fù)制代碼
代碼如下:
git log
輸出格式

復(fù)制代碼
代碼如下:
git log


復(fù)制代碼
代碼如下:
git log -p
     顯示patch

復(fù)制代碼
代碼如下:
git log --stat
  顯示改動(dòng)的一個(gè)總結(jié)

復(fù)制代碼
代碼如下:
git log --graph
  只顯示當(dāng)前branch的

復(fù)制代碼
代碼如下:
git log --graph --all
  顯示所有branch的

復(fù)制代碼
代碼如下:
git log --graph --all --decorate
顯示branch的名字


復(fù)制代碼
代碼如下:

git log --pretty=oneline, short, full, fuller
輸出的log 形式不同
復(fù)制代碼
代碼如下:

git log --pretty=format:"%h - %an, %ar : %s"
按照指定的格式輸出。
關(guān)于--pretty的其他選項(xiàng)和具體的format格式,參考 git log --help中PRETTY FORMAT這部分。


復(fù)制代碼
代碼如下:

git log --follow file.c

這個(gè)功能很有意思,尤其是當(dāng)file.c被移動(dòng)后。
通常我們會(huì)移動(dòng)某個(gè)文件到某個(gè)目錄下。如果這么做,git log是不能顯示目錄移動(dòng)前的記錄的。
那就加上 --follow吧。


git log的篩選
git log -2 -p   顯示最近兩次commit的log 和 diff
git log --author="Author Name" 篩選特定作者的log
git log --since="2012-2-23" --before="2012-2-24" 篩選時(shí)間段
git log --grep="key word" 在commit 的message中查找關(guān)鍵字
git log branch --not master 查看在branch上的,但不在master上的記錄。

git log -S"func_name"  查找某個(gè)字符出現(xiàn),或者移出的commit。 比如可以查找一個(gè)函數(shù)是什么時(shí)候添加,或者刪除的。

git show sha1   這個(gè)sha1是每個(gè)commit的sha1,這樣顯示某個(gè)commit的完全信息,包括diff
 
6. 撤銷改動(dòng)

復(fù)制代碼
代碼如下:

git checkout -- file.1

撤銷了file.1的這次改動(dòng)。只是撤銷了沒有staged的改動(dòng).
中間的 -- 表明了這是一個(gè)文件 而不是一個(gè)branch的名字

復(fù)制代碼
代碼如下:

git reset --hard HEAD

撤銷了所有沒有commit的改動(dòng),包括了stage的和沒有stage的。
這條命令的結(jié)果一樣
git checkout HEAD file.1
包括了staged 和沒有staged的都會(huì)清除。

有時(shí)候我們發(fā)現(xiàn),之前做個(gè)一個(gè)commit有問題,不想要,想要去掉。
git revert HEAD      自動(dòng)得重新做一個(gè)commit,將最后一次的commit返回回來。
git revert HEAD^     自動(dòng)得重新做一個(gè)commit,將最后第二次的commit 返回回來。
7. 刪除一個(gè)commit

復(fù)制代碼
代碼如下:

git reset --hard HEAD~1

刪除了最近的commit

8. 修改最近的一個(gè)commit

復(fù)制代碼
代碼如下:

git commit --amend

 
7.顯示所做的改動(dòng)
復(fù)制代碼
代碼如下:

git diff

顯示所有的改動(dòng)。 沒有add到index中的。

復(fù)制代碼
代碼如下:

git diff --staged或者 git diff --cached

顯示staged改動(dòng),也就是add的東東,也就是將要commit的東東。

復(fù)制代碼
代碼如下:

git diff commit1 commit2

顯示這兩個(gè)commit之間的變動(dòng), 從commit1到commit2的變動(dòng)。


復(fù)制代碼
代碼如下:

git diff commit1..commit2

兩個(gè)點(diǎn),效果跟上面的一樣


復(fù)制代碼
代碼如下:

git diff commit1...commit2

三個(gè)點(diǎn),表示的是發(fā)生在commit2分支,一直到commit1和commit2共同父親的變化。


復(fù)制代碼
代碼如下:

git blame -C file1.c

顯示文件具體的改動(dòng)。。。。恩,好像是用來找是誰的錯(cuò)?


復(fù)制代碼
代碼如下:

git blame -Ln,m file1.c

查看n,m兩行間的改動(dòng)。


復(fù)制代碼
代碼如下:

git blame commit1~1 -Ln,m file1.c

查看commit1版本前的改動(dòng). 追查之前的log。


復(fù)制代碼
代碼如下:

git blame commit1~1 -Ln,m -- old/file.c

如果這個(gè)文件被重命名過,或者移動(dòng)過位置,就要輸入舊的文件的名字。
而且一定要加上 -- , 一定。
 
8. 刪除某個(gè)文件
復(fù)制代碼
代碼如下:

git rm file-name

從庫(kù)和當(dāng)前的working directory中刪掉這個(gè)文件
復(fù)制代碼
代碼如下:

git rm --cached file-name

只從庫(kù)中刪除,保留當(dāng)前的本地文件。


9. 重命名一個(gè)文件

復(fù)制代碼
代碼如下:

git mv file file-new


10. 應(yīng)用patch

復(fù)制代碼
代碼如下:

git apply patch-file

這樣做從patch-file中應(yīng)用這個(gè)patch。 效果和patch命令類似。
但是好處是,git apply要么成功,要么不成功。不想patch,有可能有部分的patch打上了,但是有的沒有打上。
git apply后,并沒有自動(dòng)生成一個(gè)commit.


git apply --check  可以用來檢測(cè)這個(gè)patch 是不是會(huì)產(chǎn)生沖突或者失敗。


復(fù)制代碼
代碼如下:

git am patch-file

這是專門為git 設(shè)計(jì)的命令。 patch-file是通過git format-patch 生成的。
其中包含了作者信息和簡(jiǎn)單描述。
git am后,會(huì)自動(dòng)的生成一個(gè)commit.


復(fù)制代碼
代碼如下:

git am --resolved

git am 過程中可能會(huì)有conflict. 如過遇到conflict, 那就需要手動(dòng)修改code, git add 后
用git am --resolved


11 刪除一些沒有g(shù)it add的文件;

復(fù)制代碼
代碼如下:

git clean

參數(shù)
-n 顯示將要?jiǎng)h除的文件和目錄
-f 刪除文件
-df 刪除文件和目錄


復(fù)制代碼
代碼如下:

git clean -df alps/

git remote


git是一個(gè)分布式代碼管理工具,所以可以支持多個(gè)倉(cāng)庫(kù),在git里,服務(wù)器上的倉(cāng)庫(kù)在本地稱之為remote。
直接clone一個(gè)倉(cāng)庫(kù):

復(fù)制代碼
代碼如下:

$: git clone git@search.ued.taobao.net:projects/search.git

另外一種clone方式:
復(fù)制代碼
代碼如下:

# 創(chuàng)建目錄初始化本地倉(cāng)庫(kù)
$: mkdir search cd search
$: git init
# 添加遠(yuǎn)程倉(cāng)庫(kù)路徑
$: git remote add github git@github.com:yyfrankyy/search.git
# 實(shí)際上,pull 就是 fetch + merge
$: git pull github --all --tags

把工作目錄遷移到github上面:
復(fù)制代碼
代碼如下:

$: git remote add github git@github.com:yyfrankyy/search.git
$: git push github --all --tags

顯示所有的遠(yuǎn)程倉(cāng)庫(kù)
復(fù)制代碼
代碼如下:

$: git remote -v
origin git@search.ued.taobao.net:projects/search.git (fetch)
origin git@search.ued.taobao.net:projects/search.git (push)
github git@github.com:yyfrankyy/search.git (fetch)
github git@github.com:yyfrankyy/search.git (push)

重命名遠(yuǎn)程倉(cāng)庫(kù)
復(fù)制代碼
代碼如下:

$: git remote rename github gh
$: git remote
origin
gh

刪除遠(yuǎn)程倉(cāng)庫(kù)
復(fù)制代碼
代碼如下:

$: git remote rm github
$: git remote
origin

從遠(yuǎn)程倉(cāng)庫(kù)抓取數(shù)據(jù),更新本地倉(cāng)庫(kù):
復(fù)制代碼
代碼如下:

$: git fetch origin

remote: Counting objects: 58, done.
remote: Compressing objects: 100% (41/41), done.
remote: Total 44 (delta 24), reused 1 (delta 0)
Unpacking objects: 100% (44/44), done.
From git://search.ued.taobao.net:projects/search.git
 * [new branch]      product     -> origin/product
查看遠(yuǎn)程倉(cāng)庫(kù)信息,可用于跟蹤別人的push:
復(fù)制代碼
代碼如下:

$: git remote show origin

* remote origin
  Fetch URL: git@search.ued.taobao.net:projects/search.git
  Push  URL: git@search.ued.taobao.net:projects/search.git
  HEAD branch: master
  Remote branches:
    master  tracked
    p4popt  tracked
    prepub  tracked
    product tracked
  Local branches configured for 'git pull':
    master  merges with remote master
    p4popt  merges with remote p4popt
    prepub  merges with remote prepub
    product merges with remote product
  Local refs configured for 'git push':
    master  pushes to master  (up to date)
    p4popt  pushes to p4popt  (up to date)
    prepub  pushes to prepub  (up to date)
    product pushes to product (up to date)

標(biāo)簽:撫州 北海 臨沂 烏蘭察布 邢臺(tái) 南昌 防城港 韶關(guān)

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Linux系統(tǒng)下Git操作命令整理》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    夹江县| 通辽市| 襄汾县| 文水县| 临漳县| 任丘市| 岳西县| 广西| 合山市| 嫩江县| 余江县| 平罗县| 无棣县| 玉环县| 盐山县| 峨眉山市| 南安市| 冕宁县| 牡丹江市| 平利县| 顺义区| 洞口县| 沈丘县| 壤塘县| 贵阳市| 贺州市| 辰溪县| 吴旗县| 金沙县| 伊川县| 克拉玛依市| 临颍县| 格尔木市| 巩留县| 古丈县| 石狮市| 舟曲县| 出国| 佛教| 津南区| 娄烦县|