一篇文章看懂Git是什么以及如何简单的上手Git
本文來自DotNET技術圈
作者:顯杰
1.Git是什么
Git是目前世界上==最先進的分布式版本控制系統==
什么是版本控制系統?
好比設計師從開始設計第一個版本的設計稿開始:
Demo => Demo1 => Demo2 => ... =>Demo1001 => Demo最終版本 => Demo最終確認版本!
但是改了這多設計師也不記得每個版本之間都改了些啥
如果能有一個軟件,能每次記錄文件之間的改動,并且還能協調多個用戶編輯,所以就出現了Git
==Git是分布式版本控制系統,那么他們就沒有中央服務器的,每個人的電腦就是一個完整的版本庫==,這樣,工作的時候就不需要聯網了,因此版本都是在自己的電腦上,既然每個人的電腦都有一個完整的版本庫,那么多個人如何協作呢,比如自己在電腦上,更改了文件A,其他人也在電腦上改了文件A,這時候,你們兩之間只需要把各自的修改推送給對方,就可以互相看到對方的修改了
2.Git與Github的區別
==Git簡單的說其實就是一個軟件==,用于記錄一個或若干個文件內變化,以便將來查詢特定版本修訂情況的軟件
==Github(https://www.github.com)是一個為用戶提供Git服務的網站==,就是一個可以存放代碼的地方,當然可以放的不只是代碼,Github除了提供管理Git的web界面外,還提供了訂閱,關注,討論組,在線編輯器等豐厚的功能
3.Git的安裝
在這里插入圖片描述4.Git的使用
1. 本地倉庫:
?1.1 工作流程
在這里插入圖片描述在這里插入圖片描述工作區寫好的文件通過工作區轉移到暫存區(相當于背包)如何一次性把暫存區的文件轉移到Git倉庫,為什么要有一個暫存區呢,因為不可能工作區的文件一次次的從工作區把文件直接運到Git倉庫,而因該一次性全部運過去,減少了消耗嘛
1.1.2 本地倉庫操作?什么是倉庫呢?倉庫有名版本庫,英文名是Repository,我們可以簡單理解成是一個目錄,用于存放代碼的,這個目錄里面的所有文件都可以被Git管理起來,每個文件的修改,刪除等操作Git都等跟蹤到。安裝好后,首次使用需要先進行全局配置桌面空白地方右鍵,點擊“Git Bash Here” 打開Git命令行窗口
==Git config -global user.name "用戶名" Git config -global user.email "郵箱"==
當我們需要Git去管理某個新項目/已經存在項目的時候,就需要創建倉庫了,注意:創建倉庫的時候使用的目錄不一定要求是空目錄,選擇一個非空目錄也是可以的。A.創建空目錄
mkdir 文件名
B.在命令行中進入項目目錄
cd 文件路徑/文件名稱
C git文件夾初始化到選中的文件夾中
git init
在這里插入圖片描述D Git常用指令操作
查看當前狀態:git status [非必要]添加到緩存區:git add 文件名
說明:git add指令,可以添加一個文件,也可以同時添加多個文件。 語法1:git add 文件名語法2:git add 文件名1 文件名2 文件名3 …
語法3:git add . [添加當前目錄到緩存區中]
提交至版本庫:git commit -m "注釋內容"
在后續對于文件(可以操作1個或多個)操作之后,重復使用 git add與git commit指令即可
1.版本回退?版本回退分為兩步驟進行操作:
查看版本,確定需要返回的時刻點:指令: Git log 和 Git log --pretty=oneline
效果如下
在這里插入圖片描述)
在這里插入圖片描述回退操作指令: Git reset --hard 版本號
如果,回到過去之后,要想再回來到之前最新的版本的時候,這需要使用指令,得到最新的commit id。指令:
get reflog
在這里插入圖片描述**小結:**
i. 想要回到過去,必須先得到 commit id,然后通過 git reset -hard 進行回退ii. 想要回到未來,需要先使用 git reflog 查看歷史記錄,得到最新的commit id;
iii.在寫回退指令的時候 commit id可以不用寫全,git自動識別,但是也不能寫太少,至少需要寫前4位字符
1.遠程操作Github?3.1.?兩種常規使用方式?==基于http協議==1.創建空的目錄Stop2.使用clone指令克隆線上倉庫到本地 語法:git clone
在這里插入圖片描述在這里插入圖片描述3..在倉庫上做對應的操作(提交暫存區,提交本地倉庫,提交線上倉庫,拉取線上倉庫) 提交到線上倉庫指令:
git push
在這里插入圖片描述在首次往線上倉庫shop提交內容的時候出現了403的致命錯誤,原因是因為不是任何人都可以往我這兒線上倉庫提交內容,必須需要鑒權需要在.git 里面 config里面進行修改
在這里插入圖片描述格式為:賬號:密碼@。如果看到如下則成功,可以看到github中文件已經增加
在這里插入圖片描述拉取線上倉庫指令:
git pull
在這里插入圖片描述在這里插入圖片描述提醒:?在每天工作的第一件事就是先 git pull 拉取線上最新的版本,每天下班前要做的是 git push 將本地代碼提交到線上倉庫中
==基于ssh協議== 該方式與前面的https方式相比,只是影響github對于用戶的身份鑒權方式,對于git的具體操作(如提交本地,添加注釋,提交遠程等操作)沒有任何影響。
1. 生成公私鑰對指令(需先自行安裝OpenSSH) ssh-keygen -t rsa -C "注冊郵箱"  2. 上傳公鑰文件內容(id_rsa.pub)  3. 繼續克隆,完成http一樣的操作 在這里插入圖片描述1.分支管理?什么是分支?
在這里插入圖片描述在版本回退的時候,每次提交后都會有記錄,Git把他們串成時間線,形成類似于時間軸的東西,這個時間軸就是一個分支,我們稱之為==master分支(主分支)==分支相關指令:==1.查看分支:git branch==

==2.創造分支:git branch 分支名==

==3.切換分支:git checkout 分支名==
  
當我切換到master的時候
在這里插入圖片描述
發現并沒有修改對于新分支可以使用==git checkout -b 分支名== 指令來切換分支 -b 表示創建并切換,相當于2個操作==4.分支并和指令 git merge 分支名==

當我合并dev的時候 ,發現文件就進行整合,已經有修改后的一行。
在這里插入圖片描述== 5. 刪除分支 git branch -d 分支名== 刪除分支之前,先要退出到要刪除的分支(不然刪除不掉的)
在這里插入圖片描述2.沖突的產生于解決?比如,我下班后已經push代碼到線上,走了,而我之后,有同事A在線上修改了代碼,多加了一行
在這里插入圖片描述但是第二天,上班我本機代碼,并不會顯示同事修改的,但是我又在本機增加了一行。

當我第二天下班后,準備將我寫的代碼去push后,就會發現。
在這里插入圖片描述在這里插入圖片描述就會提示我,先要我pull一下,得到數據再提交。==【沖突解決的辦法】==先git pull
在這里插入圖片描述在這里插入圖片描述打開沖突文件,解決沖突 解決方法:需要和同事(誰先提交的)進行商量,看代碼如何保留,將改好的文件再次提交即可
在這里插入圖片描述5.忽略文件
場景:在項目目錄下有很多萬年不變的文件目錄,例如Css,js,images等,或者還有以謝目錄即使有變動,我們也不想讓其提交到遠程倉庫的文檔,此時我們可以使用“忽略文件”機制來實現
忽略文件需要新建一個==名為.gitignore的文件==,該文件用于申明忽略文件或不忽略文件的規則,規則對當前目錄及其子目錄生效。
注意:該文件因為沒有文件名,沒辦法直接在windows目錄下直接創建,可以通過命令行GitBash來==touch XXX== 創建
在這里插入圖片描述常見規則寫法有如下幾種:| 規則寫法 | 效果 | ---- | ---- | | /mtk | 過濾整個文件夾 | | *.zip | 過濾所有.zip文件 | | /mtk/do.c | 過濾某個具體文件 | | !index.phx | 不過濾具體某個文件 |
總結
以上是生活随笔為你收集整理的一篇文章看懂Git是什么以及如何简单的上手Git的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 程序员修神之路--容器技术为什么会这么流
- 下一篇: [翻译] 使用 Serverless 和