git 日常使用

git 日常使用

==查看隱藏文件 -ah==

  • 初始化本地倉(cāng)庫(kù)
$ git init
  • 添加文件到git
$ git add file //可以提交多個(gè)文件,空格隔開即可

$ git add file1.txt
$ git add file2.txt file3.txt
$ git commit -m "add 3 files."

  • 提交
$ git commit -m "wrote a readme file" //-m 是寫提交記錄的

$ git commit -m "add 2 file"
[master f738172] add 2 file
 2 files changed, 2 insertions(+)
 create mode 100644 readme1.txt
 create mode 100644 readme2.txt

  • 查看當(dāng)前倉(cāng)庫(kù)的狀態(tài)
$ git status

//修改了readme.txt文件,但是沒有提交,使用該命令會(huì)看到如下結(jié)果;
$ git status
On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

    modified:   readme.txt

no changes added to commit (use "git add" and/or "git commit -a")
....
上面的命令輸出告訴我們,readme.txt被修改過了,但還沒有準(zhǔn)備提交的修改试浙。
  • 查看修改的內(nèi)容
$ git diff

...
//輸入該命令可以看到如下內(nèi)容
diff --git a/readme.txt b/readme.txt
index 3226a48..6965b13 100644
--- a/readme.txt
+++ b/readme.txt
@@ -1,2 +1,4 @@
 git is a version control system
 git is free software
+Git is a distributed version control system.
+Git is free software.

  • 查看提交記錄

命令顯示從最近到最遠(yuǎn)的提交日志,如果嫌輸出信息太多扎附,看得眼花繚亂的蹦骑,可以試試加上--pretty=oneline參數(shù):

如果查看指定數(shù)量的提交記錄 git log -n 1 //看最新的一條

$ git log

...

$ git log
commit 255fc8d7c00a6ff2868cf9f34f5a9256dfc95b34 (HEAD -> master)
Author: sunjianyun <sjy_mail@163.com>
Date:   Tue Jul 23 10:57:56 2019 +0800

    修改

commit fcc9c4a26402a8e7cdfb8e8469e1e5ba8864c964
Author: sunjianyun <sjy_mail@163.com>
Date:   Tue Jul 23 10:51:01 2019 +0800

    修改readme.txt文件

commit f73817266d7f6155c4323dcadc3922cc3602a742
Author: sunjianyun <sjy_mail@163.com>
Date:   Tue Jul 23 10:41:56 2019 +0800

    add 2 file

commit b1f8f7ea5b0e825734cc6643337d7f16c2e7d28a
Author: sunjianyun <sjy_mail@163.com>
Date:   Tue Jul 23 10:32:32 2019 +0800

    wroit a readme file

  • 回退到上一個(gè)版本
$ git reset --hard HEAD^

  • 回退到指定版本

如果執(zhí)行 git reset --hard HEAD^ 后悔,想回退之前的版本,執(zhí)行如下命令

git reset --hard 255fc8d7c00a6ff2868cf9f34f5a9256dfc95b34

//后面一長(zhǎng)串這個(gè)值為 提交記錄id ,可以不用寫全,只需要寫開頭幾位就可以了
  • 查看執(zhí)行的每一條命令
& git reflog

...
255fc8d (HEAD -> master) HEAD@{0}: reset: moving to 255fc8d7c00a6ff2868cf9f34f5a9256dfc95b34
b1f8f7e HEAD@{1}: reset: moving to HEAD^
f738172 HEAD@{2}: reset: moving to HEAD^
fcc9c4a HEAD@{3}: reset: moving to HEAD^
255fc8d (HEAD -> master) HEAD@{4}: commit: 修改
fcc9c4a HEAD@{5}: commit: 修改readme.txt文件
f738172 HEAD@{6}: commit: add 2 file
b1f8f7e HEAD@{7}: commit (initial): wroit a readme file

  • 查看工作區(qū)和版本庫(kù)里面最新版本的區(qū)別
$ git diff HEAD -- readme.txt

...
$ git diff HEAD -- readme.txt

diff --git a/readme.txt b/readme.txt
index e2640eb..795ec9e 100644
--- a/readme.txt
+++ b/readme.txt
@@ -8,3 +8,5 @@ Git is free software.
 jsdh
 
 添加一行呢絨
+
+sjdhd

==文件修改完成之后一定要記得 先add ,不然 commit 的時(shí)候會(huì)發(fā)現(xiàn)之前修改的沒有提交==

  • 撤銷修改
$ git checkout -- readme.txt

//命令git checkout -- readme.txt意思就是例隆,把readme.txt文件在工作區(qū)的修改全部撤銷,這里有兩種情況:
//一種是readme.txt自修改后還沒有被放到暫存區(qū),現(xiàn)在淹辞,撤銷修改就回到和版本庫(kù)一模一樣的狀態(tài)床未;
//一種是readme.txt已經(jīng)添加到暫存區(qū)后竭翠,又作了修改,現(xiàn)在薇搁,撤銷修改就回到添加到暫存區(qū)后的狀態(tài)斋扰。總之啃洋,就是讓這個(gè)文件回到最近一次git commit或git add時(shí)的狀態(tài)传货。
git checkout -- file命令中的--很重要,沒有--宏娄,就變成了“切換到另一個(gè)分支”的命令问裕,我們?cè)诤竺娴姆种Ч芾碇袝?huì)再次遇到git checkout命令。

  • 刪除文件
$ git rm readme.txt
$ git commit -m "delete readme.txt file"

==注意:從來(lái)沒有被添加到版本庫(kù)就被刪除的文件孵坚,是無(wú)法恢復(fù)的==

  • 將本地倉(cāng)庫(kù)推送到遠(yuǎn)端空倉(cāng)庫(kù)(github 為例)
$ git remote add origin https://github.com/sunjiandev/GitTest.git

$ git push -u origin master

...

Enumerating objects: 32, done.
Counting objects: 100% (32/32), done.
Delta compression using up to 8 threads
Compressing objects: 100% (27/27), done.
Writing objects: 100% (32/32), 2.83 KiB | 1.41 MiB/s, done.
Total 32 (delta 9), reused 0 (delta 0)
remote: Resolving deltas: 100% (9/9), done.
To https://github.com/sunjiandev/GitTest.git
 * [new branch]      master -> master
Branch 'master' set up to track remote branch 'master' from 'origin'.

  • 推送本地修改到遠(yuǎn)端服務(wù)器

$ git push origin master

  • 從遠(yuǎn)程倉(cāng)庫(kù)clone 項(xiàng)目到本地
$ git clone git@github.com:sunjiandev/TestGit.git

  • 創(chuàng)建分支
$ git checkout -b dev
//git checkout命令加上-b參數(shù)表示創(chuàng)建并切換粮宛,相當(dāng)于以下兩條命令:
//  $ git branch dev
//  $ git checkout dev
  • 查看當(dāng)前分支
$ git branch

  • 切換分支
$ git checkout master

Switched to branch 'master'
  • 合并分支

git merge命令用于合并指定分支到當(dāng)前分支

$ git merge dev

  • 刪除分支
$ git beanch -d dev

  • 查看分支的合并關(guān)系圖
$ git log --graph

==查看分支:git branch==

==創(chuàng)建分支:git branch <name>==

==切換分支:git checkout <name>==

==創(chuàng)建+切換分支:git checkout -b <name>==

==合并某分支到當(dāng)前分支:git merge <name>==

==刪除分支:git branch -d <name>==

//查看分支的合并情況

==$ git log --graph --pretty=oneline --abbrev-commit==

  • 保存當(dāng)前工作的現(xiàn)場(chǎng),待以后恢復(fù)呼繼續(xù)工作
$ git stash 
  • 恢復(fù)工作區(qū)
$ git stash apply
//但是恢復(fù)后,stash內(nèi)容并不刪除卖宠,你需要用git stash drop來(lái)刪除

$ git stash pop
//恢復(fù)的同時(shí)把stash內(nèi)容也刪了
  • 查看stash 列表
$ git stash list

==你可以多次stash窟勃,恢復(fù)的時(shí)候,先用git stash list查看逗堵,然后恢復(fù)指定的stash,用命令:==

$ git stash apply stash@{0}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末眷昆,一起剝皮案震驚了整個(gè)濱河市蜒秤,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌亚斋,老刑警劉巖作媚,帶你破解...
    沈念sama閱讀 217,084評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異帅刊,居然都是意外死亡纸泡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門赖瞒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)女揭,“玉大人蚤假,你說(shuō)我怎么就攤上這事“赏茫” “怎么了磷仰?”我有些...
    開封第一講書人閱讀 163,450評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)境蔼。 經(jīng)常有香客問我灶平,道長(zhǎng),這世上最難降的妖魔是什么箍土? 我笑而不...
    開封第一講書人閱讀 58,322評(píng)論 1 293
  • 正文 為了忘掉前任逢享,我火速辦了婚禮,結(jié)果婚禮上吴藻,老公的妹妹穿的比我還像新娘瞒爬。我一直安慰自己,他們只是感情好调缨,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,370評(píng)論 6 390
  • 文/花漫 我一把揭開白布疮鲫。 她就那樣靜靜地躺著,像睡著了一般弦叶。 火紅的嫁衣襯著肌膚如雪俊犯。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,274評(píng)論 1 300
  • 那天伤哺,我揣著相機(jī)與錄音燕侠,去河邊找鬼。 笑死立莉,一個(gè)胖子當(dāng)著我的面吹牛绢彤,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播蜓耻,決...
    沈念sama閱讀 40,126評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼茫舶,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了刹淌?” 一聲冷哼從身側(cè)響起饶氏,我...
    開封第一講書人閱讀 38,980評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體恕出,經(jīng)...
    沈念sama閱讀 45,414評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,599評(píng)論 3 334
  • 正文 我和宋清朗相戀三年喊崖,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,773評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡荤懂,死狀恐怖茁裙,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情势誊,我是刑警寧澤呜达,帶...
    沈念sama閱讀 35,470評(píng)論 5 344
  • 正文 年R本政府宣布,位于F島的核電站粟耻,受9級(jí)特大地震影響查近,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜挤忙,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,080評(píng)論 3 327
  • 文/蒙蒙 一霜威、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧册烈,春花似錦戈泼、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,713評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至淀零,卻和暖如春挽绩,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背驾中。 一陣腳步聲響...
    開封第一講書人閱讀 32,852評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工唉堪, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人肩民。 一個(gè)月前我還...
    沈念sama閱讀 47,865評(píng)論 2 370
  • 正文 我出身青樓唠亚,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親持痰。 傳聞我的和親對(duì)象是個(gè)殘疾皇子灶搜,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,689評(píng)論 2 354

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

  • 創(chuàng)建代碼庫(kù) cd到某個(gè)目錄,然后創(chuàng)建一個(gè)Git本地代碼庫(kù) $ git init cd到某個(gè)目錄工窍,將其初始化為帶名字...
    cyhai閱讀 499評(píng)論 0 0
  • Git 是目前最流行的分布式版本控制系統(tǒng)之一占调。 版本控制指的是,記錄每次版本變更的內(nèi)容和時(shí)間等細(xì)節(jié)移剪,保留各版本之間...
    神齊閱讀 1,421評(píng)論 0 7
  • 查看、添加薪者、提交纵苛、刪除、找回,重置修改文件 git help # 顯示command的help git sho...
    Swiftor閱讀 2,111評(píng)論 0 2
  • Add & Commit git init 初始化一個(gè) Git 倉(cāng)庫(kù)(repository)攻人,即把當(dāng)前所在目錄變成...
    冬絮閱讀 4,831評(píng)論 0 9
  • 原文地址主要用到的命令: git config user.name 設(shè)置用戶名 git config user....
    AFinalStone閱讀 468評(píng)論 0 2