Git

????Git是一個免費的、開源的分布式版本控制系統(tǒng),可以快速高效地處理從小型到大型的項目,局域網(wǎng)可以配置GitLab服務(wù)器,外網(wǎng)環(huán)境有GitHub、碼云。常見的版本控制工具:Subversion(SVN)、CVS等

? ? 版本控制工具的好處

? ? ? ? 協(xié)同修改:多人并行不悖的修改服務(wù)器端的同一份文件

? ? ? ? 數(shù)據(jù)備份:不僅保存目錄和文件的當(dāng)前狀態(tài),還能保存每一個提交過的歷史狀態(tài)

? ? ? ? 版本管理:在保存每一個版本的信息時候要做到不保存重復(fù)數(shù)據(jù),以節(jié)約存儲空間,提高運行效率,這方面SVN采用文件系統(tǒng)快照方式

? ? ? ? 權(quán)限控制:對團隊中參與開發(fā)的人員進行權(quán)限控制,對團隊外開發(fā)者貢獻的代碼進行審核——Git獨有

? ? 歷史記錄:查看修改人、修改時間、修改內(nèi)容、修改信息??蓪⒈镜匚募謴?fù)到某一個歷史狀態(tài)

? ? 分支管理:允許開發(fā)團隊在工作過程中多條生產(chǎn)線同時推進任務(wù),進一步提高效率

? ? Git的優(yōu)勢:

? ? a.大部分操作在本地完成,不需要聯(lián)網(wǎng)

? ? b.盡可能添加數(shù)據(jù)而不是修改或刪除數(shù)據(jù)

? ? c.分支操作非常快捷流暢

? ? d.與Linux命令兼容

安裝Git及初始化本地倉庫

? ? git --version:查看Git安裝版本

? ? init:初始化命令,初始化完成后會有一個.git隱藏文件夾,用來管理Git倉庫

.git

? ? git?config --global?user.name "配置全局用戶名"

? ? git config --global user.email "配置用戶郵箱"

初始化配置

? ? git add?文件名:將工作區(qū)的文件添加到暫存區(qū)

? ? git?commit -m/message"修改注釋":將暫存區(qū)的文件提交到本地庫中

? ? git?status [文件名]:查看暫存區(qū)/分支中的文件狀態(tài)

git添加、提交、查看

查看日志:

? ??git log:查看歷史記錄,顯示從最近到最遠的日志

詳細日志

? ? 簡化顯示:git log --pretty=oneline

? ? 查看簡短日志:git?reflog

簡短日志

Git執(zhí)行/存儲流程

? ? 代碼工作區(qū)---add--->暫存區(qū)(屬于臨時存儲)---commit--->本地庫(歷史流程)

? ? 工作區(qū)、暫存區(qū)和本地倉庫,邏輯上是本地計算機,當(dāng)我們新建一個文件時,文件位于工作區(qū),處于(modified)修改狀態(tài),還沒有提交保存;通過git?add命令將其添加到暫存區(qū),文件是已暫存(staged)狀態(tài),表示把已修改的文件放到下次提交時要保存的清單中,通過命令git?commit將文件放入本地倉庫,文件為提交(commited)狀態(tài),表示該文件已經(jīng)被安全地保存在本地數(shù)據(jù)庫中,到這一步可以說是成功生成了一個新的版本,遠程倉庫用來將本地倉庫上傳到網(wǎng)絡(luò)、實現(xiàn)備份、共享和合作

? ? git branch -v:查看當(dāng)前git倉庫所有分支

? ? git branch [分支名]:添加分支

? ? git checkout?分支名:切換分支

新建分支

? ? git?branch -d/delete?分支名:刪除分支

刪除分支

? ? 配置Git遠程SSH Key

? ??ssh-keygen -t rsa -C "email,建議寫真實郵箱",會有三次提示輸入,直接回車即可

????在用戶目錄下生成 .ssh 目錄 ,個 里面有一個 id_rsa.pub 文件 ,保存的就是公鑰。

????登錄碼云,在 SSH 公鑰文本框里粘貼 id_rsa.pub 文件的內(nèi)容

????驗證秘鑰是否添加成功

????執(zhí)行命令 ssh -T git@git.oschina.net

????Git 使用 SSH 連接第一次驗證服務(wù)器的 key 時,需要你進行確認,此時輸入 yes 回車即可。

????再次執(zhí)行 ssh -T git@git.oschina.net

連接成功

????git remote -v:查看所有地址別名

? ? git?remote?add?別名?路徑:添加新路徑并配置別名

? ? git remote remove?別名:刪除配置的別名/路徑

配置地址

? ? git clone?倉庫地址:克隆倉庫/分支

? ? git pull [別名] [分支名]:從遠程倉庫下載

? ? git push?[別名] [分支名]:推送到遠程倉庫

克隆,上傳和下載

? ? ? ? Clone和Pull區(qū)別:

? ? ? ? Clone是克隆到Repository中,Pull是直接拉取到workspace中

注意:如果遇到上傳代碼沖突,一定要先Pull到本地,然后修改沖突的文件,最后add—>commit—>push

Git理解詳情圖

常用命令集:

mkdir: XX(創(chuàng)建一個空目錄 XX 指目錄名)

pwd: 顯示當(dāng)前目錄的路徑

git init 把當(dāng)前的目錄變成可以管理的 git 倉庫,生成隱藏的.git 文件。

git add XX 把 XX 文件添加到暫存區(qū)。

git commit -m “XX” 提交文件 -m 后面的是注釋

git status 查看倉庫狀態(tài)

git diff XX 查看 XX 文件修改了哪些內(nèi)容

git log 查看歷史記錄

git reset -hard HEAD^ 或者 git reset -hard HEAD~ 回退到上一個版本(如果想回退到 100個版本,使用 git reset -hard HEAD~100)

cat XX 查看 XX 文件內(nèi)容

git reflog 查看歷史記錄的版本號 id

git checkout --XX 把 XX 文件在工作區(qū)的修改全部撤銷

git rm XX 刪除 XX 文件

git remote add origin https://gitee.com/oldlu_wk/gittest.git 關(guān)聯(lián)一個遠程庫

git push -u (第一次提交要用-u 以后不需要)origin master 把當(dāng)前 master 分支推送到遠程庫

git clone https://gitee.com/oldlu_wk/gittest.git 從遠程庫中克隆

git checkout -b dev 創(chuàng)建 dev 分支 并切換到 dev 分支上

git branch 查看當(dāng)前所有分支

git checkout master 切換回 master 分支

git merge dev 在當(dāng)前分支上合并 dev 分支

git branch -d dev 刪除 dev 分支

git branch name 創(chuàng)建分支

git stash 把當(dāng)前的工作隱藏起來等以后恢復(fù)現(xiàn)場后繼續(xù)工作

git stash list 查看所有被隱藏的文件列表

git stash apply 恢復(fù)被隱藏的文件,但是內(nèi)容不刪除

git stash drop 刪除文件

git stash pop 恢復(fù)文件的同時也刪除文件

git remote 查看遠程庫的信息


在IDEA中配置和操作Git

在IDEA中配置Git

? ? 創(chuàng)建本地倉庫,一般指定到項目結(jié)構(gòu)下

創(chuàng)建本地倉庫

? ? 添加到暫存區(qū)和提交到本地倉庫工作空間

添加到暫存區(qū)和提交到本地倉庫工作空間

? ? 配置遠程倉庫地址

1
2

? ? 提交并上傳

提交并上傳

? ? 上傳過程中可能出現(xiàn)的問題: Push rejected: Push to origin/master was rejected

Push rejected: Push to origin/master was rejected

? ? 解決辦法:

????1.選擇你要上傳代碼的文件夾,鼠標(biāo)右鍵 git Bash Here

????2.輸入下面兩行命令

????????git pull origin master --allow-unrelated-histories --把遠程倉庫中的內(nèi)容 pull 到本地工作目錄

????????git push -u origin master -f --在 pull 下來的項目中做修改,通過以上命令 push 到遠程倉庫了

解決上傳問題

? ? 在IDEA中解決Git上傳沖突問題

出現(xiàn)沖突

? ? 點擊合并

合并

? ? 修改沖突文件

修改

? ? 修改完成后即可Commit?and Push

上傳成功

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

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

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