Git SSH Key 生成步驟和Git的簡單使用

Git 是分布式的代碼管理工具,遠(yuǎn)程的代碼管理基于SSH的,配置SSH的步驟如下:

一、設(shè)置Git的user name和email:

$ git config --global user.name "xxx"
$ git config --global user.email "aaa.bbb@xxx.com"

二疆拘、生成SSH密鑰過程:

1、查看是否已經(jīng)有了ssh密鑰:
$ cd ~/.ssh
$ ls
2寂曹、生成密鑰:
$ ssh-keygen -t rsa -C "aaa.bbb@xxx.com"

按三個回車入问,密碼為空。

Your identification has been saved in /home/tekkub/.ssh/id_rsa.
Your public key has been saved in /home/tekkub/.ssh/id_rsa.pub.
The key fingerprint is: ...........

最后得到了兩個文件:id_rsa和id_rsa.pub

3稀颁、添加密鑰到ssh:

ssh-add 文件名芬失,需要之前輸入的密碼。

ssh-add id_rsa
4匾灶、在git上添加密鑰棱烂,需要添加到git上的是id_rsa.pub,此時(shí)登錄賬號阶女,即可clone颊糜,pull,push代碼了秃踩。

Git的簡單使用

1衬鱼、設(shè)置別名

設(shè)置別名可以是git命令變得簡單一些,個人習(xí)慣常用的別名如下:

$ git config --global alias.cm commit
$ git config --global alias.st status
$ git config --global alias.ck checkout
$ git config --global alias.br branch

2憔杨、git add

git add指令分為git add -A ,git add -u鸟赫,git add .和git add <fileName>

- git add . : 他會監(jiān)控工作區(qū)的狀態(tài)樹,使用它會把工作時(shí)的所有變化提交到暫存區(qū)消别,包括文件內(nèi)容修改(modified)以及新文件(new)抛蚤,但不包括被刪除的文件(git v1.0)。
- git add -u : 他僅監(jiān)控已經(jīng)被add的文件(即tracked file)寻狂,他會將被修改的文件提交到暫存區(qū)岁经。add -u 不會提交新文件(untracked file)。(git add --update的縮寫)
- 是上面兩個功能的合集(git add --all的縮寫)
- git add <fileName> : 添加某個指定文件到緩存區(qū)蛇券。

在 git 2.0版本之后缀壤,git add . 和 git add -A 是一樣的效果。

3纠亚、git commit -m "xxxxxx"

此命令用于給提交添加注釋塘慕,使用git log指令即可查看每次commit的注釋了。

4菜枷、git pull 和 git push

  • git pull origin <branch>: 相當(dāng)于git fetch + git merge苍糠,拉取遠(yuǎn)程分支并merge叁丧。
  • git pull --rebase : 相當(dāng)于git fetch + git rebase啤誊,拉取遠(yuǎn)程分支并進(jìn)行rebase操作岳瞭。
  • git push origin <branch>:將本地緩存推送到遠(yuǎn)程分支。

5蚊锹、git merge 和 git rebase 的區(qū)別

舉個例子:
A和B兩個人進(jìn)行合作開發(fā)瞳筏,同時(shí)在develop分支上開啟各自的功能分支featureA和featureB進(jìn)行開發(fā),A在10:00提交了A1牡昆,12:00提交了A2姚炕,16:00提交了A3,并且合并到develop分支丢烘,此時(shí)develop分支狀態(tài)為:

Head -> A1 -> A2 -> A3

而B則分別在9:00提交了B1柱宦,在11:00提交了B2,在17:00提交了B3播瞳,此時(shí)對于B來說掸刊,合并到develop分支有兩種方式,使用rebase和merge赢乓。

// 根據(jù)提交的先后順序進(jìn)行排序
merge : Head -> B1 -> A1 -> B2 -> A2 -> A3 -> B3
// 根據(jù)提交的先后進(jìn)行排序
rebase: Head -> A1 -> A2 -> A3 -> B1 -> B2 -> B3

6忧侧、git branch

列出本地已經(jīng)存在的分支,并且在當(dāng)前分支的前面加“*”號標(biāo)記牌芋。
git branch -r : 列出遠(yuǎn)程分支
git branch -a: 列出本地分支和遠(yuǎn)程分支
git branch <name>: 創(chuàng)建一個新的本地分支
git branch -m oldbranch newbranch: 重命名分支
git branch -d branchname: 刪除本地分支
git push origin --delete branchname:刪除遠(yuǎn)程分支

7蚓炬、git remote

列出已經(jīng)存在的遠(yuǎn)程分支
git remote -v: 列出詳細(xì)信息,在每一個名字后面列出其遠(yuǎn)程url

origin  git@172.17.0.18:iOS/ttgenwomai_certificates.git (fetch)
origin  git@172.17.0.18:iOS/ttgenwomai_certificates.git (push)

git remote add <name> <url>:在url創(chuàng)建名字為name的倉庫躺屁,name為遠(yuǎn)程倉庫的名字肯夏。

8、git checkout

遷出一個分支的特定版本犀暑。默認(rèn)是遷出分支的HEAD版本熄捍。
git checkout master:取出master版本的head。
git checkout <branchname> <filename>:放棄對xx分支的xx文件的修改母怜,如果是當(dāng)前分支余耽,<branchname>可以省略。
git checkout .: 放棄所有的修改苹熏。

9碟贾、git stash 和 git pop

git stash:是備份當(dāng)前的工作區(qū)的內(nèi)容,從最近的一次提交中讀取相關(guān)內(nèi)容轨域,讓工作區(qū)保證和上次提交的內(nèi)容一致袱耽。同時(shí),將當(dāng)前的工作區(qū)內(nèi)容保存到Git棧中干发。
git stash pop:從Git棧中讀取最近一次保存的內(nèi)容朱巨,恢復(fù)工作區(qū)的相關(guān)內(nèi)容。由于可能存在多個Stash的內(nèi)容枉长,所以用棧來管理冀续,pop會從最近的一個stash中讀取內(nèi)容并恢復(fù)琼讽。
git stash list:顯示Git棧內(nèi)的所有備份,可以利用這個列表來決定從那個地方恢復(fù)洪唐。
git stash clear:清空Git棧钻蹬。此時(shí)使用gitg等圖形化工具會發(fā)現(xiàn),原來stash的哪些節(jié)點(diǎn)都消失了凭需。

10问欠、tag

//  列出本地tag
$ git tag

// 添加tag
$ git tag -a v0.1.2 -m “0.1.2版本”

// 切換到tag的位置
$ git checkout -b [branch] [tagname]

// 刪除tag
$ git tag -d [tagname]

// 推tag
$ git push origin –tags
$ git push origin [tagname]


關(guān)于git開發(fā)過程中,推薦使用git flow 進(jìn)行管理粒蜈,比較方便靈活顺献,適合多人開發(fā)團(tuán)隊(duì)。以上都是開發(fā)中遇見的指令枯怖,如果錯誤滚澜,請及時(shí)指出。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末嫁怀,一起剝皮案震驚了整個濱河市设捐,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌塘淑,老刑警劉巖萝招,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異存捺,居然都是意外死亡槐沼,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進(jìn)店門捌治,熙熙樓的掌柜王于貴愁眉苦臉地迎上來岗钩,“玉大人,你說我怎么就攤上這事肖油〖嫦牛” “怎么了?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵森枪,是天一觀的道長视搏。 經(jīng)常有香客問我,道長县袱,這世上最難降的妖魔是什么浑娜? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮式散,結(jié)果婚禮上筋遭,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好漓滔,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布编饺。 她就那樣靜靜地躺著,像睡著了一般次和。 火紅的嫁衣襯著肌膚如雪反肋。 梳的紋絲不亂的頭發(fā)上那伐,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天踏施,我揣著相機(jī)與錄音,去河邊找鬼罕邀。 笑死畅形,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的诉探。 我是一名探鬼主播日熬,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼肾胯!你這毒婦竟也來了竖席?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤敬肚,失蹤者是張志新(化名)和其女友劉穎毕荐,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體艳馒,經(jīng)...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡憎亚,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了弄慰。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片第美。...
    茶點(diǎn)故事閱讀 38,599評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖陆爽,靈堂內(nèi)的尸體忽然破棺而出什往,到底是詐尸還是另有隱情,我是刑警寧澤慌闭,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布恶守,位于F島的核電站,受9級特大地震影響贡必,放射性物質(zhì)發(fā)生泄漏兔港。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一仔拟、第九天 我趴在偏房一處隱蔽的房頂上張望衫樊。 院中可真熱鬧,春花似錦、人聲如沸科侈。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽臀栈。三九已至蔫慧,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間权薯,已是汗流浹背姑躲。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留盟蚣,地道東北人黍析。 一個月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像屎开,于是被迫代替她去往敵國和親阐枣。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,465評論 2 348

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