git命令知道這些就夠了

git的commit分三個(gè)區(qū)域以及三個(gè)階段:

  • working tree:就是你所工作在的目錄,每當(dāng)你在代碼中進(jìn)行了修改,working tree的狀態(tài)就改變了。

  • index file:是索引文件,它是連接working tree和commit的橋梁,每當(dāng)我們使用git add命令來(lái)登記后,index file的內(nèi)容就改變了,此時(shí)index file就和working tree同步了。

  • commit:是最后的階段,只有commit了,我們的代碼才真正進(jìn)入了git倉(cāng)庫(kù)。我們使用git-commit就是將index file里的內(nèi)容提交到本地版本庫(kù)commit中。

遠(yuǎn)程倉(cāng)庫(kù)remote repository:要將本地倉(cāng)庫(kù)中的修改推送到遠(yuǎn)程倉(cāng)庫(kù)才能實(shí)現(xiàn)共享,使用git push命令。

查看修改:

git diff:是查看working tree與index file的差別的。

git diff --cached:是查看index file與commit的差別的。

git diff HEAD:是查看working tree和commit的差別的。(你一定沒有忘記,HEAD代表的是最近的一次commit的信息)

對(duì)應(yīng)的回滾操作:

working tree改變了的,用 git checkout

index區(qū)改變了的,用git reset [--hard|soft|mixed|merge|keep] [或HEAD] , 然后再checkout

已經(jīng)commit了的,可以使用git revert,但用git revert 是沒法抹掉已經(jīng)commit的log的信息,如果要抹掉歷史信息,可以使用git reset,建議加參數(shù)--soft,這樣即使reset了,也不會(huì)拋棄當(dāng)前working tree中的修改

git的分支:

git branch ---列出分支列表,當(dāng)前所在分支前有符號(hào)*

git checkout 分支名----切換到分支

git的遠(yuǎn)程倉(cāng)庫(kù),git允許有多個(gè)遠(yuǎn)程倉(cāng)庫(kù);

git remote---列出遠(yuǎn)程倉(cāng)庫(kù)別名列表,默認(rèn)origin

git remote -v -------遠(yuǎn)程所有遠(yuǎn)程倉(cāng)庫(kù)url

git remote add 別名 url -------新增一個(gè)遠(yuǎn)程倉(cāng)庫(kù)

git clone URL 復(fù)制一個(gè)項(xiàng)目

git add . (或者git add 文件名, ,代表所有修改)將修改添加到索引區(qū);

git add fileName,將指定文件的修改添加到索引區(qū);

不小心add . 加錯(cuò)了怎么辦:

git rm --cached <added_file_to_undo>

如需撤銷文件夾加上-r
git rm -r --cached <added_file_to_undo>

git status 查看當(dāng)前工作狀態(tài),哪些文件做了修改等等;

git commit -m '修改日志' -------將索引區(qū)的修改提交到本地版本庫(kù)

git rebase 用來(lái)合并commit 一般在自己的開發(fā)分支進(jìn)行,需要合并代碼之前最好將自己的commit進(jìn)行合并,方面將來(lái)cherrypick某一個(gè)commit

git push [遠(yuǎn)程倉(cāng)庫(kù)別名 本地分支:遠(yuǎn)程分支] ----推送到遠(yuǎn)程倉(cāng)庫(kù),默認(rèn)是推送到origin倉(cāng)庫(kù)的同名分支;

git pull [origin master] --rebase -----------更新遠(yuǎn)程倉(cāng)庫(kù)的內(nèi)容到本地倉(cāng)庫(kù),默認(rèn)是更新origin倉(cāng)庫(kù)的同名分支,git pull命令實(shí)際包含git fetch和git merge兩個(gè)命令;

git log ------查看commit記錄

git checkout 文件名 ---------還原工作區(qū)對(duì)某文件的修改

git checkout 分支名 ---------切換分支

git reset ----------放棄索引區(qū)的修改

git reset commit id(通過(guò)git log獲取commit id) -----還原到 commit id

git cherry pick 是拉取某一個(gè)單個(gè)更改的版本

git cherry 常常配合著 git rebase -i 一起來(lái)用,后者是用來(lái)合并commit的,然后再用cherry pick來(lái)獲取想要的commit

git stash是個(gè)暫存命令,使用情況案例:

  1. 你當(dāng)前工作區(qū)的源代碼是可以生成正常運(yùn)行的版本的。

  2. 然后在1的代碼上做修改,但是改到了一半,還沒完成,不能正常工作也不能提交。

3.這時(shí)候測(cè)試說(shuō)有個(gè)比較緊急的bug要修復(fù),而且這個(gè)bug你衡量是可以很快解決的。

  1. 這時(shí)候就可以使用git stash,把當(dāng)前還沒commit的改動(dòng)暫存起來(lái)。

5.暫存后,工作區(qū)的內(nèi)容會(huì)變成只有已經(jīng)commit的內(nèi)容.然后開始修復(fù)3步驟中的bug,修復(fù)完提交。

6.繼續(xù)你之前還未完成的工作,這時(shí)候要從緩存區(qū)里把之前做了一半的代碼取出來(lái),使用命令git stash apply,默認(rèn)是將id為0的快照應(yīng)用到工作區(qū);

  1. git stash可以保存多個(gè)快照,可以通過(guò)git stash list查看,從中選擇你想要pop的stash,運(yùn)行命令git stash pop stash@{id}或者 git stash apply stash@{id}即可,

pop會(huì)刪除快照,apply則不刪除

git新建之后遠(yuǎn)端有merge,本地也有不相關(guān)的merge

這個(gè)時(shí)候需要這一句

git pull --allow-unrelated-histories

打 tag 標(biāo)簽

git tag -a v1.0 -m 'commit version 1.0'

加上 -f 覆蓋原有的tag

git tag -f v1.0

刪除本地tag

git tag -d v1.1

刪除遠(yuǎn)程tag

git push origin :v1.1 或者 git push origin --delete tag V1.1

git config --global user.name "用戶名" 更改用戶名

git 注冊(cè)用戶,如何獲取ssh 更改token 獲取密鑰,使用密鑰

如何獲取生成ssh key

ssh-keygen -t rsa -C "GitLab" -b 4096

然后綁定賬號(hào),添加秘鑰即可

關(guān)于現(xiàn)在的項(xiàng)目管理方式。

新建項(xiàng)目新建一個(gè)develop分支,一個(gè)online分支,online 分之是最后要上線的分支develop分支是平時(shí)測(cè)試代碼的分支,有新任務(wù)時(shí)新建一個(gè)任務(wù)分支分支名為任務(wù)號(hào),開發(fā)完成之后合并到develop分支,然后再合到online分支,然后再將任務(wù)分支刪掉

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,606評(píng)論 6 533
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,582評(píng)論 3 418
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,540評(píng)論 0 376
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,028評(píng)論 1 314
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,801評(píng)論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,223評(píng)論 1 324
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,294評(píng)論 3 442
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,442評(píng)論 0 289
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,976評(píng)論 1 335
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,800評(píng)論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 42,996評(píng)論 1 369
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,543評(píng)論 5 360
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,233評(píng)論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,662評(píng)論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,926評(píng)論 1 286
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 51,702評(píng)論 3 392
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 47,991評(píng)論 2 374