有關(guān) git 的使用總結(jié)

前言

由于公司使用的 git 來(lái)管理項(xiàng)目的版本迭代問(wèn)題赁项,天天使用挪挤,可以說(shuō)是非常重要的內(nèi)容洞拨。以前都是將一些相關(guān)的命令行和操作記在筆記本上烤礁,但是最近拿出筆記本來(lái)才發(fā)現(xiàn)讼积,記錄的太過(guò)凌亂,因此也來(lái)寫一篇文章來(lái)整理一下脚仔,以便以后方便使用币砂。畢竟好記性不如爛筆頭嘛。

git 的相關(guān)說(shuō)明

Git是一款免費(fèi)玻侥、開源的分布式版本控制系統(tǒng),用于敏捷高效地處理任何或小或大的項(xiàng)目亿蒸。
百度百科
使用 git 版本管理工具一般是用命令行進(jìn)行操作凑兰,當(dāng)然也有可視化工具,這就看自己的愛好了边锁。

工具的選擇

1姑食、可以直接打開本地的命令行工具,進(jìn)入到自己項(xiàng)目所在的文件夾下茅坛,進(jìn)行操作即可
2音半、使用 git 工具打開(git 相關(guān)的工具也有多種,這里使用的是 git version2.9.2)贡蓖。在項(xiàng)目文件夾下右鍵選擇 git bash here曹鸠,即可進(jìn)行操作

準(zhǔn)備工作

1、下載安裝 git 工具(這里使用的是 git version2.9.2)斥铺。在任意文件夾下右鍵出現(xiàn) git bash here 等字樣彻桃,說(shuō)明安裝成功。
2晾蜘、選擇項(xiàng)目工作空間(建議:這里選擇一個(gè)單獨(dú)的文件夾邻眷,里面僅僅是項(xiàng)目使用,避免與其他文件混淆剔交,便于操作)肆饶。工作空間的選擇主要是用于創(chuàng)建項(xiàng)目倉(cāng)庫(kù)使用。
3岖常、Mac 環(huán)境下進(jìn)行配置和安裝
(1) cd~/.ssh:檢查是否有ssh密鑰驯镊,如果沒有提示:no such file or directory
(2) 如果有已存在的ssh密鑰,需要進(jìn)行備份一下并刪除,執(zhí)行
config id_rsa id_rsa.pub known_hosts
mkdir key_backup #在當(dāng)前目錄下創(chuàng)建一個(gè)叫"key_backup"的文件夾
cp id_rsa* key_backup #復(fù)制id_rsa和id_rsa.pub到key_backup里面
rm id_rsa*
(3) 創(chuàng)建一個(gè)新的ssh密鑰
ssh-keygen -t rsa -C "你的郵箱"
然后一路enter即可阿宅,需要輸入密碼的正確輸入
現(xiàn)實(shí)一個(gè)方形圖表示創(chuàng)建成功
(4) 在你的GitHub上setting里面新建ssh
(5) 在你本地的.ssh/id_rsa.pub里面的全部復(fù)制到GitHub上保存
(6) 確認(rèn)連接 ssh -T git@github.com 或者ssh git@github.com
(7) 設(shè)置你的用戶名和郵箱
git config --global user.name "your name"
git config --global user.email "your email"
(8) 將遠(yuǎn)程的代碼克隆下來(lái)
git clone git@github.com*
指定文件夾路徑 git clone git@github.com*** file/files(文件夾路徑)
等著下載完即可候衍,這個(gè)過(guò)程比較慢,或者使用下面的步驟也可

以上的(1)-(8)步驟在 windows 系統(tǒng)上同樣適用

創(chuàng)建項(xiàng)目倉(cāng)庫(kù)

有兩種方式創(chuàng)建項(xiàng)目倉(cāng)庫(kù):
1洒放、是在現(xiàn)存的目錄下蛉鹿,通過(guò)導(dǎo)入所有文件來(lái)創(chuàng)建新的 Git 倉(cāng)庫(kù)(git init)
2、從已有的遠(yuǎn)端 Git 倉(cāng)庫(kù)克隆出一個(gè)新的鏡像倉(cāng)庫(kù)來(lái)(git clone)

git init 初始化本地倉(cāng)庫(kù)
要對(duì)現(xiàn)有的某個(gè)項(xiàng)目開始用 Git 管理往湿,只需到此項(xiàng)目所在的目錄妖异,執(zhí)行:git init
git clone 是將遠(yuǎn)程的代碼倉(cāng)庫(kù)復(fù)制到本地
需要獲得遠(yuǎn)程代碼倉(cāng)庫(kù)的 URL(兩種方式:ssh 和 https)

3、創(chuàng)建分支 (git branch -b branch_name)
4领追、查看分支 (git branch:查看本地分支他膳,git branch -a:查看所有分支,包括遠(yuǎn)程分支)
5绒窑、刪除分支 (git delete -d branch_name:刪除已經(jīng) merge 到本分支的分支棕孙,git delete -D branch_name:刪除分支)
6、切換分支 (git checkout branch_name)

在這里創(chuàng)建分支是很常用的功能些膨,創(chuàng)建分支后蟀俊,我們可以將任務(wù)拆分,然后完成后合并订雾,提高工作效率肢预。
創(chuàng)建分支時(shí),一般我們選擇一個(gè)根分支洼哎,在這個(gè)分支的基礎(chǔ)上創(chuàng)建分支烫映,這樣我們可以獲得根分支上的所有代碼,并進(jìn)行其他操作噩峦,在 -b 后面加上分支名即可
查看分支是锭沟,我們可以查看本地和遠(yuǎn)程的分支列表,進(jìn)而進(jìn)行相應(yīng)的操作识补,比如刪除冈钦、切換分支等
刪除分支時(shí),使用 -d 時(shí)會(huì)判斷李请,刪除的分支是否已經(jīng)合并到你當(dāng)前的分支上瞧筛,如果沒有則刪除失敗。-D 會(huì)直接進(jìn)行刪除导盅。
在獲取分支列表后较幌,就可以使用 checkout 進(jìn)行切換分支了

7、查看修改的文件列表(git status)
8白翻、添加修改文件(git add file_name)
9乍炉、清除修改(在尚未提交的情況下:git checkout file_name)

使用 status 會(huì)打印出當(dāng)前分支的所有改變的文件
這是 checkout 的另一種使用方法绢片,就是可以根據(jù)需要還原文件,后面跟上文件名即可

10岛琼、提交代碼(git commit )
11底循、提交代碼(git push origin branch_name)
12、修改沖突流程(git fetch branch_name槐瑞,git rebase origin/develop熙涤, git rebase --continue,git add file_name困檩,git push -f branch_name祠挫,git merge branch_name)

git commit :是將代碼提交到本地緩存區(qū)
git push origin branch_name:將緩存區(qū)代碼提交到遠(yuǎn)程倉(cāng)庫(kù)
一般正常的流程是:
git status:查看修改文件
git add file_name:添加修改文件
git commit:將修改的文件添加到本地緩存區(qū)
git push origin branch_name:提交到遠(yuǎn)程倉(cāng)庫(kù)

在這里是最復(fù)雜的一步,當(dāng)我們?cè)谔峤淮a的時(shí)候可能會(huì)出現(xiàn)我們的分支與其他同事的分支沖突的情況(同時(shí)修改同一個(gè)地方)悼沿,因此我們要根據(jù)需要進(jìn)行解決等舔,將沖突部分刪除,保留正確的代碼糟趾。

命令的使用步驟是:
git fetch branch_name:將遠(yuǎn)程分支的代碼全部拉取到本地
git rebase origin/develop:查看所有沖突慌植,并解決
git add file_name:將解決的沖突加入到緩存區(qū)
git rebase --continue:解決完上一個(gè)沖突后,繼續(xù)執(zhí)行 rebase 查看下一個(gè)沖突部分
上面的兩部其實(shí)也可以使用 git merge branch_name 來(lái)完成义郑,大致一樣
git push -f branch_name:將解決完沖突的代碼強(qiáng)制推送到遠(yuǎn)程分支蝶柿,并覆蓋(這一步非必須做,盡量不要做魔慷,可能會(huì)導(dǎo)致丟失代碼)

13、查看提交列表(git log)
14著恩、還原提交(在提交代碼的情況下:git resert commit_name)

在提交完代碼后我們可以通過(guò)打 log 的方式院尔,查看提交的列表
如果對(duì)于某次提交的功能進(jìn)行還原,則可以使用 resert

15喉誊、保存工作進(jìn)度(git stash)
16邀摆、查看進(jìn)度列表(git stash list)
17、回到進(jìn)度(git stash pop/apply stash@{進(jìn)度ID})
18伍茄、刪除進(jìn)度(git stash drop stash@{進(jìn)度ID})

這個(gè)功能適用于栋盹,當(dāng)我們?cè)陂_發(fā)一個(gè)功能時(shí),突然有其他任務(wù)需要我們臨時(shí)處理敷矫,但是本地的代碼又不至于提交一次(中間含有很多調(diào)試代碼和 Log.e()……都懂的)這樣的場(chǎng)景例获,我們只需要將進(jìn)度保存,就可以回到分支無(wú)修改狀態(tài)曹仗,這時(shí)就可以切換分支榨汤,等完成其他任務(wù),再切回分支怎茫,返回進(jìn)度即可收壕。

創(chuàng)建本地倉(cāng)庫(kù)并上傳到遠(yuǎn)端

1妓灌、使用命令行工具,cd 到你的項(xiàng)目的文件夾下蜜宪,使用 git init
2虫埂、然后 git add README.md,添加 README 文件
3圃验、將本地文件添加到暫存區(qū)里面掉伏,使用 git add ,然后 git commit -m "first commit" 提交到本地倉(cāng)庫(kù)
4、在自己的 github 上創(chuàng)建一個(gè)新倉(cāng)庫(kù)损谦,復(fù)制倉(cāng)庫(kù)的 URL
5岖免、使用 git remote add origin URL 關(guān)聯(lián)到遠(yuǎn)程倉(cāng)庫(kù)
6、將本地代碼推到遠(yuǎn)程倉(cāng)庫(kù)中去照捡,git push -u origin master

寫在最后

這篇文章拖了很久颅湘,后來(lái)發(fā)現(xiàn)還是寫完比較好,畢竟善始善終嘛栗精。這里只是用于記錄一些 git 最基本的使用命令闯参,至于原理什么的可以到 git 官網(wǎng)進(jìn)行學(xué)習(xí),不過(guò)暫時(shí)只想到這么多悲立,其實(shí) git 的使用還有很多鹿寨,希望大家多多查閱資料進(jìn)行補(bǔ)充。如有錯(cuò)誤薪夕,歡迎大家糾正脚草,以便進(jìn)一步修改。

最后一句

希望自己能以開始的夢(mèng)想為目的原献,不要偏離了自己的初衷馏慨。

推薦一個(gè) git 的學(xué)習(xí)網(wǎng)站

git

花絮:最近突然看到了 git 的誕生史,再次感慨大神就是大神啊姑隅,有興趣的可以 look look
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末写隶,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子讲仰,更是在濱河造成了極大的恐慌慕趴,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,718評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鄙陡,死亡現(xiàn)場(chǎng)離奇詭異冕房,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)趁矾,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門毒费,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人愈魏,你說(shuō)我怎么就攤上這事觅玻∠爰剩” “怎么了?”我有些...
    開封第一講書人閱讀 158,207評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵溪厘,是天一觀的道長(zhǎng)胡本。 經(jīng)常有香客問(wèn)我,道長(zhǎng)畸悬,這世上最難降的妖魔是什么侧甫? 我笑而不...
    開封第一講書人閱讀 56,755評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮蹋宦,結(jié)果婚禮上披粟,老公的妹妹穿的比我還像新娘。我一直安慰自己冷冗,他們只是感情好守屉,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,862評(píng)論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著蒿辙,像睡著了一般拇泛。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上思灌,一...
    開封第一講書人閱讀 50,050評(píng)論 1 291
  • 那天俺叭,我揣著相機(jī)與錄音,去河邊找鬼泰偿。 笑死熄守,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的耗跛。 我是一名探鬼主播裕照,決...
    沈念sama閱讀 39,136評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼课兄!你這毒婦竟也來(lái)了牍氛?” 一聲冷哼從身側(cè)響起晨继,我...
    開封第一講書人閱讀 37,882評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤烟阐,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后紊扬,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蜒茄,經(jīng)...
    沈念sama閱讀 44,330評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,651評(píng)論 2 327
  • 正文 我和宋清朗相戀三年餐屎,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了檀葛。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,789評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡腹缩,死狀恐怖屿聋,靈堂內(nèi)的尸體忽然破棺而出空扎,到底是詐尸還是另有隱情,我是刑警寧澤润讥,帶...
    沈念sama閱讀 34,477評(píng)論 4 333
  • 正文 年R本政府宣布转锈,位于F島的核電站,受9級(jí)特大地震影響楚殿,放射性物質(zhì)發(fā)生泄漏撮慨。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,135評(píng)論 3 317
  • 文/蒙蒙 一脆粥、第九天 我趴在偏房一處隱蔽的房頂上張望砌溺。 院中可真熱鬧,春花似錦变隔、人聲如沸规伐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)楷力。三九已至,卻和暖如春孵户,著一層夾襖步出監(jiān)牢的瞬間萧朝,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評(píng)論 1 267
  • 我被黑心中介騙來(lái)泰國(guó)打工夏哭, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留检柬,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,598評(píng)論 2 362
  • 正文 我出身青樓竖配,卻偏偏與公主長(zhǎng)得像何址,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子进胯,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,697評(píng)論 2 351

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