Git常用指令

在進行git操作之前吃度,首先得創(chuàng)建一個遠程git倉庫壹蔓。由于你的本地Git倉庫和遠程Git倉庫之間的傳輸是通過SSH加密的,所以陷舅,需要一點設置:
第一步: 創(chuàng)建SSH Key望薄。在用戶主目錄下疟游,看看有沒有.ssh目錄,如果有痕支,再看看這個目錄下有沒有id_rsa和id_rsa.pub這兩個文件颁虐,如果已經有了,可直接跳到下一步卧须。如果沒有另绩,打開終端(Windows下打開Git Bash),創(chuàng)建SSH Key:

$ ssh-keygen -t rsa -C "youremail@example.com"

你只要把郵件地址換成你git的郵件賬號就可以了故慈,然后一路回車板熊,使用默認值就可以了,無須設置密碼察绷。
如果一切順利的話,你就可以在根目錄下看到.ssh的目錄津辩。里面有id_rsa和id_rsa.pub兩個文件拆撼,這兩個就是SSH Key的秘鑰對,id_rsa是私鑰喘沿,不能泄露出去闸度,id_rsa.pub是公鑰,可以告訴別人蚜印,一般是會將公鑰上傳到遠程的git倉庫莺禁。


屏幕快照 2020-01-19 下午4.25.06.png

第二步: 在遠程git配置公鑰。
也就是將id_rsa.pub里的信息拷貝到SSH key的配置信息里即可窄赋。
這樣你才可以將你本地的代碼上傳到遠程庫哟冬,這里的私鑰對就是識別你的身份,確認這里的提交是你進行操作的忆绰。

一浩峡、將本地代碼提交到遠程倉庫。

如果遠程已經存在倉庫 可以直接執(zhí)行git clone +倉庫地址

1. 首先得創(chuàng)建本地倉庫错敢。

可將項目拷貝到一個工程文件下翰灾,或直接在項目的主目錄,創(chuàng)建git倉庫。
通過cd到文件目錄下纸淮,在終端執(zhí)行git init,如果在已有的項目中存在了git倉庫平斩,可先刪除相應的git文件,再進行創(chuàng)建咽块。

git init
2. 關聯遠程倉庫双戳。
$ git remote add origin git@github.com:michaelliao/learngit.git(此倉庫地址,會在創(chuàng)建倉庫的時候生成糜芳,直接拷貝過來即可)飒货。
3. 關聯后,用git status查看倉庫狀態(tài)峭竣。然后再執(zhí)行下面的操作塘辅。
git add .
git commit -m "提交說明"

最后再執(zhí)行使用命令git push -u origin master第一次推送master分支的所有內容;

git push -u origin master

當你第一次使用Git的clone或者push命令連接GitHub時皆撩,會得到一個警告:

The authenticity of host 'github.com (xx.xx.xx.xx)' can't be established.
RSA key fingerprint is xx.xx.xx.xx.xx.
Are you sure you want to continue connecting (yes/no)?

這是因為Git使用SSH連接扣墩,而SSH連接在第一次驗證GitHub服務器的Key時,需要你確認GitHub的Key的指紋信息是否真的來自GitHub的服務器扛吞,輸入yes回車即可呻惕。
查看遠程倉庫地址:

git remote -v
會得到下面的打印
origin  git@gitlab.xxx.com.cn:xxx-folder/ios-app.git (fetch)
origin  git@gitlab.xxx.com.cn:xxx-folder/ios-app.git (push)
倉庫創(chuàng)建好之后,接下來就是開發(fā)者用的最多的操作滥比,基本是每天都會用到亚脆。

二、分支管理盲泛。

1. 創(chuàng)建分支

//從拉取遠程分支到本地

git fetch origin remoteBranchName
git checkout -b branchName origin/remoteBranchName

//創(chuàng)建新的本地分支

git branch branchName //創(chuàng)建分支
如濒持, git branch dev   //創(chuàng)建dev分支

查詢本地綁定的遠程分支:

git branch -vv
2. 切換分支。
git checkout -b dev_test   //創(chuàng)建并切換到dev_test分支
Switched to a new branch 'dev_test'

git checkout 表示切換分支寺滚, -b 創(chuàng)建分支柑营。相當于下面兩條指令的合集。

git branch dev_test  //創(chuàng)建分支
git checkout dev_test //切換分支

git branch 查看本地分支
git branch -a 查看所有分支

新版本的git建議使用 git switch命令來切換分支村视。

git switch dev     //切換分支
git switch -c dev_home  //創(chuàng)建并切換到dev_home分支
3 .刪除分支

a. 本地分支刪除

git branch -d dev_test //本地刪除分支官套,你當前所處的分支不能是你要刪除的分支(dev_test)。
如果無法刪除終端會給出提示

error: The branch 'dev_search' is not fully merged.
If you are sure you want to delete it, run 'git branch -D dev_test'.
這時候你就可以執(zhí)行 git branch -D dev_test 強制刪除該分支蚁孔。

b. 遠程分支刪除

git push origin --delete dev_test //將要刪除的分支push到origin即可刪除奶赔。
另一種方式就是,
git push origin :dev_test(本地已刪除的分支名稱勒虾,注意冒號后需要一個空格)纺阔。

4. 分支重命名。
git branch -m oldBranchName newBranchName

如我想將dev_test分支改名為dev_home分支修然。

git branch -m dev_test dev_home笛钝。

三质况、提交合并代碼(stash、merge)

在每次提交代碼前玻靡,都要查看倉庫狀態(tài) git status结榄。

  1. stash 暫存
git status
git diff //查看變化

git stash save "臨時緩存"
git stash list   //查看stash列表
git stash pop //恢復最近的一個stash
git stash pop stash@{1}//恢復指定的stash

git stash drop stash@{0}   //移除第一個stash
git stash clear  // 清除所有stash


git log //查看版本控制系統歷史記錄
commit 5c6ff84e9bcaad06d1c6ba7856487853d89b4fe1 (HEAD -> dev_search, origin/dev_search)
Merge: 4533a78def 7d3d9df828   
Author: xxx001 <xxx001@pingan.com.cn>
Date:   Sun Jan 19 15:19:09 2020 +0800

    解決合并沖突提交代碼

commit 7d3d9df8288d84aa5fd85a0061fefebe18c9664b (dev)
Merge: b19d5c8c2c 4aee5d5a43
Author: xxx001 <xxx001@pingan.com.cn>
Date:   Sun Jan 19 14:42:38 2020 +0800

    Merge branch 'dev' of ssh://code.paic.com.cn/git/carowner-ios into dev

  1. add ,commit
$ git add .  //將所有文件添加到暫存區(qū)(stage),
$ git commit -m "首頁彈出窗bug fix"。 // 執(zhí)行git commit就可以一次性把暫存區(qū)的所有修改提交到分支囤捻。

修改commit提交的注釋
修改最后一次的提交注釋臼朗,這個最常見

git commit --amend         【第一行出現注釋界面】
i //進入編輯界面

修改某次的注釋

git rebase -i HEAD~2

四、版本回退

如果代碼已經commit過蝎土,但是想去掉本次commit的狀態(tài)视哑,但又不想去掉最新本地修改的代碼,可以執(zhí)行

git reset origin/branchName //將本地代碼狀態(tài)回滾到commit之前,本地代碼還在,但需要重新add commit
有時候想修改commit的描述說明也可用這種方法誊涯。 

1 reset方式 (通過reset的方式挡毅,把head指針指向之前的某次提交,reset之后暴构,后面的版本就找不到了)

每次提交代碼都會有一個commitId:也就是提交記錄id,所有的提交都可以根據提交記錄id找到跪呈。

git reset --hard HEAD //回到當前提交的版本, 也就是上一次版本取逾。
git reset --hard HEAD^ //回到上一次提交記錄耗绿。
git reset --hard HEAD~100 //回到上一百個版本。
git reset --hard commitId  //回到對應的commitId對應的版本砾隅。

強制push到對應的遠程分支(如提交到develop分支)

git push -f -u origin develop

2.revert

這種方式不會把版本往前回退误阻,而是撤銷某一次提交,某次commitId之前和之后的提交都會保留。只是撤銷某次提交琉用,并生成一個新的commit堕绩。所以,你只需要讓別人更新一下代碼就可以了邑时,你之前操作的提交記錄也會被保留下來
操作步驟如下:

1、找到你誤提交之前的版本號

2特姐、git revert -n 版本號

3晶丘、git commit -m xxxx 提交

4、git push 推送到遠程
根據自己實際情況選擇不同的版本回退方式唐含。如果只保留某次版本或之前的代碼浅浮,則可以選擇reset。但在實際多人開發(fā)中捷枯,只是想把某次你提交的給回退滚秩,則可以選擇revert,因為想回退的某次commit之后淮捆,可能會有其他同事也提交了代碼郁油,但不能把他們的也會退本股,所以此時選revert更合適。
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末桐腌,一起剝皮案震驚了整個濱河市拄显,隨后出現的幾起案子,更是在濱河造成了極大的恐慌案站,老刑警劉巖躬审,帶你破解...
    沈念sama閱讀 219,270評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異蟆盐,居然都是意外死亡承边,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 93,489評論 3 395
  • 文/潘曉璐 我一進店門石挂,熙熙樓的掌柜王于貴愁眉苦臉地迎上來博助,“玉大人,你說我怎么就攤上這事誊稚∠枋迹” “怎么了?”我有些...
    開封第一講書人閱讀 165,630評論 0 356
  • 文/不壞的土叔 我叫張陵里伯,是天一觀的道長城瞎。 經常有香客問我,道長疾瓮,這世上最難降的妖魔是什么脖镀? 我笑而不...
    開封第一講書人閱讀 58,906評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮狼电,結果婚禮上蜒灰,老公的妹妹穿的比我還像新娘。我一直安慰自己肩碟,他們只是感情好强窖,可當我...
    茶點故事閱讀 67,928評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著削祈,像睡著了一般翅溺。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上髓抑,一...
    開封第一講書人閱讀 51,718評論 1 305
  • 那天咙崎,我揣著相機與錄音,去河邊找鬼吨拍。 笑死褪猛,一個胖子當著我的面吹牛,可吹牛的內容都是我干的羹饰。 我是一名探鬼主播伊滋,決...
    沈念sama閱讀 40,442評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼碳却,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了新啼?” 一聲冷哼從身側響起追城,我...
    開封第一講書人閱讀 39,345評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎燥撞,沒想到半個月后座柱,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 45,802評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡物舒,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,984評論 3 337
  • 正文 我和宋清朗相戀三年色洞,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片冠胯。...
    茶點故事閱讀 40,117評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡火诸,死狀恐怖,靈堂內的尸體忽然破棺而出荠察,到底是詐尸還是另有隱情置蜀,我是刑警寧澤,帶...
    沈念sama閱讀 35,810評論 5 346
  • 正文 年R本政府宣布悉盆,位于F島的核電站盯荤,受9級特大地震影響,放射性物質發(fā)生泄漏焕盟。R本人自食惡果不足惜秋秤,卻給世界環(huán)境...
    茶點故事閱讀 41,462評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望脚翘。 院中可真熱鬧灼卢,春花似錦、人聲如沸来农。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,011評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽沃于。三九已至灿巧,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間揽涮,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,139評論 1 272
  • 我被黑心中介騙來泰國打工饿肺, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留蒋困,地道東北人。 一個月前我還...
    沈念sama閱讀 48,377評論 3 373
  • 正文 我出身青樓敬辣,卻偏偏與公主長得像雪标,于是被迫代替她去往敵國和親零院。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,060評論 2 355

推薦閱讀更多精彩內容

  • git的使用原則是可復用村刨,不重復告抄,需放進git遠程倉庫的文件:源代碼、第三方文件嵌牺。 不需放進git遠程倉庫的文件:...
    Singal11閱讀 1,513評論 0 0
  • 版本庫操作 git init # 把當前的目錄變成可以管理的git倉庫打洼,生成隱藏.git文件(但...
    琢磨先生lf閱讀 425評論 0 0
  • 1.Git介紹 Git是分布式版本管理控制系統 Git使用好處:可以在脫機環(huán)境中查看開發(fā)版本歷史,在合作開發(fā)中使用...
    Mstian閱讀 274評論 0 0
  • 由于git的使用通常伴隨著linux的常用指令逆粹,因此下面記得也有l(wèi)inux常用的操作募疮,如果學習git確實應該也學習...
    fwfaef閱讀 250評論 0 0
  • 一、git的一些常用指令 查看僻弹、添加阿浓、提交、刪除蹋绽、找回芭毙,重置修改文件 git help # 顯示command...
    李先生Mr_Li閱讀 264評論 0 0