Git學(xué)習(xí)總結(jié)

前言

? ? 學(xué)習(xí)git也是應(yīng)了很多年前大家說的,不會(huì)用git的程序員不是一個(gè)好程序員。為了做一個(gè)好的程序員之前也有大體了解過git與github,但是由于所處的公司基本上都是用svn來管理公司的代碼托管,所以很少能夠真正的了解到git的強(qiáng)大。換了新公司之后,由于不會(huì)使用git一度還覺得很尷尬,那么就讓我們來學(xué)習(xí)他吧!

? ? 本文是基于來學(xué)習(xí)的。


git

Git 是一個(gè)開源的分布式版本控制系統(tǒng),用于敏捷高效地處理任何或小或大的項(xiàng)目。

Git 是 Linus Torvalds 為了幫助管理 Linux 內(nèi)核開發(fā)而開發(fā)的一個(gè)開放源碼的版本控制軟件。

Git 與常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本庫的方式,不必服務(wù)器端軟件支持。


git與gitlab與github的區(qū)別


安裝git


搭建gitlab


常用的gitlab工具命令以及注意事項(xiàng)

? ? gitlab的使用命令其實(shí)就是git命令,git 命令都是以git開始的。

1、本地庫初始化:git init

2、設(shè)置簽名

形式-->
用戶名:tom
Email地址:xxxx@qq.com
作用:區(qū)分不同開發(fā)人員的身份
辨析:這里設(shè)置的簽名和登陸遠(yuǎn)程庫[代碼托管中心]的賬號(hào)、密碼沒有任何關(guān)系。
命令:
? ? ? ? ~倉(cāng)庫級(jí)別/倉(cāng)庫級(jí)別:僅在當(dāng)前本地倉(cāng)庫范圍內(nèi)有效
? ? ? ? ? ? $ git config user.name? hyz_pro
? ? ? ? ? ? $ git config user.email? ?hyz_pro@qq.com
? ??????????$ 信息保存位置:./.git/config文件
? ? ? ? ~系統(tǒng)用戶級(jí)別:登陸當(dāng)前操作系統(tǒng)的用戶范圍;
? ? ? ? ? ? $ git config --global user.name hyz_glb
? ? ? ? ? ? $ git config --global user.email? hyz_glb@qq.com
? ? ? ? ? ? $ 信息保存位置:~/.gitconfig 文件? ? ? ? ? ? ? ??
? ? ? ? 級(jí)別優(yōu)先級(jí):
? ? ? ? ? ? ~就近原則:項(xiàng)目級(jí)別優(yōu)先于系統(tǒng)用戶級(jí)別,二者都有事采用項(xiàng)目級(jí)別的簽名
? ? ? ? ? ? ~如果只有系統(tǒng)用戶級(jí)別的簽名,就以系統(tǒng)用戶級(jí)別的簽名為準(zhǔn)
? ? ? ? ? ? ~二者都沒有不允許

3、基本操作

1.狀態(tài)查看操作:查看工作區(qū)、暫存區(qū)狀態(tài)
????????git status
2.添加操作:將工作區(qū)的”新建/修改“添加到暫存區(qū)
????????git add? [file name]
3.提交操作:將暫存區(qū)的內(nèi)容提交到本地庫
????????git commit -m "commit message" [file name]
4.查看歷史記錄操作:
? ? ? ? git log
? ? ? ? git log --pretty=oneline
? ? ? ? git log --oneline
? ? ? ? git reflog

5.前進(jìn)后退
? ? ? ? git reset --hard? [局部索引值]
? ? ? ? ? ? e.g: git reset --hard??b8fc9ee
? ? ? ? git reset --hard HEAD^^(后退多少個(gè)版本,就寫多少個(gè)”^“)或者git reset --hard HEAD~n(表示后退n個(gè)版本),可以通過git reflog 來查看到達(dá)歷史版本需要的步數(shù);只能后退;

6.刪除文件并找回:
? ? 前提:刪除前,文件存在時(shí)的狀態(tài)提交到了本地庫。
? ? 操作:git reset --hard? [指針位置]
? ? ? ? ? ? ? ? ~刪除操作已經(jīng)提交到了本地庫:指針位置指向歷史記錄
? ? ? ? ? ? ? ? ~刪除操作尚未提交到本地庫:指針位置使用HEAD

7、文件差異比較
? ? git diff [文件名] :將工作區(qū)中的文件呵暫存區(qū)進(jìn)行比較
? ? git diff [本地庫中歷史版本] [文件名]:將工作區(qū)中的文件呵本地庫歷史記錄比較
? ? git diff :不帶文件名,對(duì)比工作區(qū)中的所有文件

8、在本地創(chuàng)建遠(yuǎn)程庫地址別名
? ? git remote -v :查看地址的別名列表
? ? git remote add? [別名] [遠(yuǎn)程庫地址]

9、推送操作
? ? git push [遠(yuǎn)程庫分支別名]? [遠(yuǎn)程庫分支]
? ? ? ? e.g:git push origin master

4、分支

1、創(chuàng)建分支:?git branch [分支名]? ?
2、查看分支:git branch -v?
3、切換分支:git checkout [分支名]
4、合并分支:
? ? 第一步:切換到接收修改的分支(被合并,增加新內(nèi)容)上
????????????-->git checkout [被合并分支名];
? ? 第二步:執(zhí)行merge命令
????????????--->git merge [有新內(nèi)容分支名]

5、解決沖突

? ? 6、GitHub遠(yuǎn)程庫的創(chuàng)建與使用

?作用:
? ? ? ? ~完整的把遠(yuǎn)程庫下載到本地
? ? ? ? ~創(chuàng)建origin遠(yuǎn)程庫的地址別名
? ? ? ? ~初始化本地庫

1、克隆命令
????????? 命令:git clone? [遠(yuǎn)程地址]? ??
2、拉取
? ? ? ? ~? pull=fetch + merge
? ? ? ? ~ git fetch [遠(yuǎn)程庫地址別名] [遠(yuǎn)程分支名]
? ? ? ? ~ git merge [遠(yuǎn)程庫地址別名/遠(yuǎn)程分支名]
3、解決沖突
? ? 要點(diǎn):
? ? ? ? ? ? ~如果不是基于GitHub遠(yuǎn)程庫的最新版所做的修改,不能推送,必須先拉取
? ? ? ? ? ? ~拉取下來后如果進(jìn)入沖突狀態(tài),則按照“分支沖突解決”操作解決即可。
? ??

7、Eclipse操作?

1、eclipse的關(guān)聯(lián)操作,以及創(chuàng)建git項(xiàng)目關(guān)聯(lián)。。。

2、Eclipse中忽略文件
? ? 概念:Eclipse特定文件、這些都是eclipse為了管理我們創(chuàng)建的工程而維護(hù)的文件,和開發(fā)的代碼沒有直接關(guān)系。最好不要在git中進(jìn)行追蹤,也就是把他們忽略。至于為什么要忽略掉他們,自己想??!
? ? .classpath 文件
? ? .project 文件
? ? .settings 目錄下所有文件
做法:添加忽略文件配置,在~/.gitconfig文件中引入一下文件。
? ? [core]
? ? ? ? ? ? excludesfile=C:/Users/Administrator/Java.gitignore
注意:這里路徑中是使用linux路徑符號(hào),一定要使用“/”,而不能使用“\”;
3、推送到運(yùn)程庫
4、oxygen eclipse克隆工程操作(高版本)
? ? import ...導(dǎo)入工程--->project from git---->clone url---->填寫遠(yuǎn)程庫的復(fù)制地址,輸入用戶名,密碼---->導(dǎo)入到工作區(qū)目錄中(低版本的eclipse無法導(dǎo)入到工作區(qū)目錄,只能導(dǎo)入到另外的其他目錄中)-->轉(zhuǎn)換工程的模式為eclipse模式

8、跨團(tuán)隊(duì)合作

9、SSH登陸
? ? 1、輸入ssh-keygen -t rsa -C 919242695@qq.com生成一個(gè).ssh目錄,該目錄在系統(tǒng)用戶目錄下面。
? ? 2、將.ssh目錄下的文件id_rsa.pub里面的內(nèi)容,復(fù)制到用戶設(shè)置ssh and GPG keys里面

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容