GIT學(xué)習(xí)與實戰(zhàn)記錄

創(chuàng)建版本庫repository
mkdir f:/gitlearn
cd f:/gitlearn
git init
更新(新增磷籍、修改藏畅、刪除)文件到git倉庫
1 git add <file>  #如果有多個文件雅倒,重復(fù)敲多行代碼
2 git commit -m "此次提交的說明"  #提交

添加當(dāng)前目錄下的所有文件夾及文件 git add .(后面為“.”)

添加整個文件夾  git add directoryname/

刪除的另一種寫法:

1 如果非git刪除(手動拷邢、rm file)香府,使用git checkout -- file.txt即可恢復(fù)文件绽左,因為版本庫還存在文件
2 如果使用git rm file.txt悼嫉,且未執(zhí)行g(shù)it commit(此時,文件還在暫存區(qū))拼窥,想要恢復(fù)文件戏蔑,先執(zhí)行 git reset HEAD file.txt,再執(zhí)行g(shù)it checkout -- file.txt鲁纠,即可恢復(fù)文件
3 刪除版本庫的文件总棵,使用git rm file.txt,再執(zhí)行g(shù)it commit
查看當(dāng)前git倉庫狀態(tài)
git status #列出需要更新的文件
git diff readme.txt #并顯示更改的內(nèi)容
git log --pretty=oneline #查看日志
版本回退
git reset --hard HEAD^ #會退到上一個版本改含,^的個數(shù)表示上上...上個版本情龄,可以寫成HEAD~100,標(biāo)識退回到前100個版本

git reset --hard commit_id #根據(jù)版本id,讓當(dāng)前工作空間回退到某一個指定的版本捍壤,id可以不用寫全骤视,git會自動檢索,也有可能檢索到多個版本鹃觉,就不行了

總結(jié):
HEAD指向的版本就是當(dāng)前版本专酗,因此,Git允許我們在版本的歷史之間穿梭盗扇,使用命令git reset --hard commit_id祷肯。

穿梭前沉填,用git log可以查看提交歷史,以便確定要回退到哪個版本佑笋。

要重返未來翼闹,用git reflog查看命令歷史,以便確定要回到未來的哪個版本蒋纬。
工作區(qū)與暫存區(qū)
工作區(qū)與暫存區(qū).jpg
撤銷修改

錯誤使用git add后猎荠,直接 git reset,撤銷所有添加文件

  • 文件修改后蜀备,未使用git add命令法牲,不在暫存區(qū)
git checkout -- readme.txt
可以將修改內(nèi)容撤銷,與版本庫最新版本代碼一致
  • 文件修改后琼掠,執(zhí)行了git add命令拒垃,已存在于暫存區(qū)
兩步執(zhí)行
git reset HEAD readme.txt    #既可以回退版本,也可以把暫存區(qū)的修改回退到工作區(qū)瓷蛙。當(dāng)我們用HEAD時悼瓮,表示最新的版本
git checkout -- readme.txt     #把readme.txt文件在工作區(qū)的修改全部撤銷
遠(yuǎn)程倉庫,秘鑰生成配置

git本地倉庫艰猬,可以是多臺機器横堡,把每臺機器生成的公鑰添加到github SHH keys中,這樣本機就可以通過私鑰訪問github倉庫

本機生成公鑰和私鑰的命令:
打開git bash冠桃,在用戶主目錄下執(zhí)行 $ ssh-keygen -t rsa -C "youremail@example.com"命贴,一路回車鍵使用默認(rèn)值,即可生成.shh目錄食听,該目錄下有兩個文件id_rsa和id_rsa.pub胸蛛,分別為私鑰和公鑰,將公鑰添加到github SSH keys中即可
本機生成私鑰公鑰.jpg

github公鑰添加成功示意圖.jpg
添加遠(yuǎn)程倉庫
1 先在github上建立一個空庫
2 使用命令git remote add origin git@github.com:chnqi/gitlearn.git樱报;

總結(jié):
要關(guān)聯(lián)一個遠(yuǎn)程庫葬项,使用命令git remote add origin git@server-name:path/repo-name.git;
關(guān)聯(lián)后迹蛤,使用命令git push -u origin master第一次推送master分支的所有內(nèi)容民珍;

此后,每次本地提交后盗飒,只要有必要嚷量,就可以使用命令git push origin master推送最新修改;

分布式版本系統(tǒng)的最大好處之一是在本地工作完全不需要考慮遠(yuǎn)程庫的存在逆趣,也就是有沒有聯(lián)網(wǎng)都可以正常工作蝶溶,而SVN在沒有聯(lián)網(wǎng)的時候是拒絕干活的!當(dāng)有網(wǎng)絡(luò)的時候汗贫,再把本地提交推送一下就完成了同步身坐,真是太方便了!
方法二:第一種有時一直報錯 落包,用此種方式
1 在github上建立空庫
2 git clone git@github.com:chnqi/gitCloneTest.git
3 進(jìn)入下載的目錄部蛇,執(zhí)行g(shù)it init
4 因為遠(yuǎn)程clone下來的,已經(jīng)有了關(guān)聯(lián)關(guān)系咐蝇,可以不執(zhí)行g(shù)it remot add origin git@github.com:chnqi/gitCloneTest.git
5 git push -u origin master
從遠(yuǎn)程倉庫克隆
git clone git@github.com:chnqi/gitCloneTest.git
git分支

速度遠(yuǎn)快于SVN涯鲁,使用的是指針指向分支的方式
分支在實際中有什么用呢?假設(shè)你準(zhǔn)備開發(fā)一個新功能有序,但是需要兩周才能完成抹腿,第一周你寫了50%的代碼,如果立刻提交旭寿,由于代碼還沒寫完警绩,不完整的代碼庫會導(dǎo)致別人不能干活了。如果等代碼全部寫完再一次提交盅称,又存在丟失每天進(jìn)度的巨大風(fēng)險


分支概念圖解.png
Git鼓勵大量使用分支:

查看分支:git branch

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

切換分支:git checkout <name>或者git switch <name>

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

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

刪除分支:git branch -d <name>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末肩祥,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子缩膝,更是在濱河造成了極大的恐慌混狠,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件疾层,死亡現(xiàn)場離奇詭異将饺,居然都是意外死亡,警方通過查閱死者的電腦和手機痛黎,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進(jìn)店門予弧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人湖饱,你說我怎么就攤上這事桌肴。” “怎么了琉历?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵坠七,是天一觀的道長。 經(jīng)常有香客問我旗笔,道長彪置,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任蝇恶,我火速辦了婚禮拳魁,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘撮弧。我一直安慰自己潘懊,他們只是感情好姚糊,可當(dāng)我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著授舟,像睡著了一般救恨。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上释树,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天肠槽,我揣著相機與錄音,去河邊找鬼奢啥。 笑死秸仙,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的桩盲。 我是一名探鬼主播寂纪,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼赌结!你這毒婦竟也來了弊攘?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤姑曙,失蹤者是張志新(化名)和其女友劉穎襟交,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體伤靠,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡捣域,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了宴合。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片焕梅。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖卦洽,靈堂內(nèi)的尸體忽然破棺而出贞言,到底是詐尸還是另有隱情,我是刑警寧澤阀蒂,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布该窗,位于F島的核電站,受9級特大地震影響蚤霞,放射性物質(zhì)發(fā)生泄漏酗失。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一昧绣、第九天 我趴在偏房一處隱蔽的房頂上張望规肴。 院中可真熱鬧,春花似錦、人聲如沸拖刃。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽兑牡。三九已至央碟,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間发绢,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工垄琐, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留边酒,地道東北人。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓狸窘,卻偏偏與公主長得像墩朦,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子翻擒,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,577評論 2 353

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