前言
由于公司使用的 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 的誕生史,再次感慨大神就是大神啊姑隅,有興趣的可以 look look