git入門-基本操作與http/ssh連接遠程倉庫


學自:https://www.bilibili.com/video/BV1sJ411D7xN?p=1
轉自一篇word
鏈接:https://pan.baidu.com/s/1_agGetbXMjak7B3uECy2gA
提取碼:nm4d

一、Git基礎

1.Git介紹

Git是目前世界上最先進的分布式版本控制系統

ex:

“最終最終最終稿”
在這里插入圖片描述

除非你就是傳說中的改一步備份一次永遠不刪除的大師!

如果不是我相信git可以幫助你

2.Git與Github

2.1、兩者的區別

Git是一個分布式版本控制系統,簡單的說其就是一個軟件,用於記錄一個或若干文件內容變化,以便將來查閱特定版本修訂情況的軟件。

Github(https://www.github.com)是一個為用戶提供Git服務的網站,簡單說就是一個可以放代碼的地方(不過可以放的當然不僅是代碼)。Github除了提供管理Git的web界面外,還提供了訂閱、關注、討論組、在線編輯器等豐富的功能。Github被稱之為全球最大的基友網站(凌晨兩三點一群男人在某網站上洽談…)。

2.2、Gitub注冊與git安裝
  • github官網:https://github.com/(記住自己的又想與昵稱)

  • git安裝:https://git-scm.com/downloads(安裝過程全點下一步就行)

右鍵任意一個目錄出現這兩個就安裝成功啦

在這里插入圖片描述


二、Git的使用

1.1、本地倉庫

1.1、工作流程
  • git本地操作的三個區域

在這里插入圖片描述

  • 工作流程

在這里插入圖片描述

1.2、本地倉庫操作

什么是倉庫呢?倉庫又名版本庫,英文名repository,我們可以簡單理解成是一個目錄,用於存放代碼的,這個目錄里面的所有文件都可以被Git管理起來,每個文件的修改、刪除等操作Git都能跟蹤到。

安裝好進行全局配置(右鍵左面選擇Git Bash Here)

此時會彈出一個命令框

$ git config --global user.name “用戶名”

$ git config --global user.email “郵箱地址”

在這里插入圖片描述

創建倉庫

​ 當我們需要讓Git去管理某個新項目/已存在項目的時候,就需要創建倉庫了。注意,創建倉庫時使用的目錄不一定要求是空目錄,選擇一個非空目錄也是可以的,但是不建議在現有項目上來學習Git,否則造成的一切后果概不負責!

​ 注意:為了避免在學習或使用過程中出現各種奇葩問題,請不要使用包含中文的目錄名(父目錄亦是如此)。

git倉庫初始化(pro_git該文件名字是任意取的所放的目錄也是任意的)

在這里插入圖片描述

③Git常用指令操作

  • git add ( 是 軟 件 自 帶 的 , 輸 入 命 令 行 前 面 默 認 出 現 是軟件自帶的,輸入命令行前面默認出現
# 傳入一個文件
$ git add 文件名
# 傳入多個文件
$ git add 文件名1 文件名2 文件名3
# 傳入該目錄下的所有文件
$ git add.
  • git commit -m “注釋內容”

在這里插入圖片描述

1.3、版本回退

主要分為兩個步驟

步驟:

​ ①查看版本,確定需要回到的時刻點

​ 指令:

​ git log

​ git log --pretty=oneline

​ ②回退操作

​ 指令:

​ git reset --hard 提交編號

demo: 想坐時光機回到創建好第一個文件readme.txt的時候。

在這里插入圖片描述

注意:回到過去之后,要想再回到之前最新的版本的時候,則需要使用指令去查看歷史操作,以得到最新的commit id。

指令:git reflog

在這里插入圖片描述
小結:

​ a. 要想回到過去,必須先得到commit id,然后通過git reset –hard 進行回退;

​ b. 要想回到未來,需要使用git reflog進行歷史操作查看,得到最新的commit id;

​ c. 在寫回退指令的時候commit id可以不用寫全,git自動識別,但是也不能寫太少,至少需要寫前4位字符;

2、遠程倉庫

線上倉庫的操作學習以Github為例。

2.1、線上倉庫創建

打開創建倉庫頁面:https://github.com/new

圈出的部分為必填項,其余根據實際需要選擇性補充:

在這里插入圖片描述

2.2、兩種常規使用方式
2.2.1、基於http/https 協議

a. 創建空目錄,名稱就稱為shop

在這里插入圖片描述

b. 使用clone指令克隆線上倉庫到本地

語法:git clone 線上倉庫地址

在這里插入圖片描述

c. 在倉庫上做對應的操作(提交暫存區、提交本地倉庫、提交線上倉庫、拉取線上倉庫)

提交到線上倉庫的指令:git push

在這里插入圖片描述

在首次往線上倉庫shop提交內容的時候出現了403的致命錯誤,原因是不是任何人都可以往線上倉庫提交內容,必須需鑒權。

需要修改“.git/config”文件內容:

在這里插入圖片描述

ex:

在這里插入圖片描述

如果看到類似上述效果(沒有fatal錯誤)則表示提交成功。

【驗證】此時可以觀察瀏覽器,刷新線上倉庫的地址:

在這里插入圖片描述

拉取線上倉庫:git pull

在這里插入圖片描述
提醒:

​ 在每天工作的第一件事就是先git pull拉取線上最新的版本;每天下班前要做的是git push,將本地代碼提交到線上倉庫。

2.2.2、基於ssh協議(推薦)

該方式與前面https方式相比,只是影響github對於用戶的身份鑒權方式,對於git****的具體操作(如提交本地、添加注釋、提交遠程等操作)沒有任何影響。

生成公私玥對指令(需先自行安裝OpenSSH):ssh-keygen -t
rsa -C “注冊郵箱”

步驟:

①生成客戶端公私玥文件

②將公鑰上傳到Github

實際操作:

①打開提示

在這里插入圖片描述

②創建公私玥對文件

在這里插入圖片描述
③上傳公鑰文件內容(id_rsa.pub)

在這里插入圖片描述
填寫完畢之后保存即可。

④執行后續git操作,操作與先前一樣

a. clone線上倉庫到本地(git clone)

在這里插入圖片描述

b. 修改文件后添加緩存區、提交本地倉庫、提交線上倉庫

在這里插入圖片描述

在push的時候並沒有提示要求我們輸入帳號密碼,因為公私玥已經實現了用戶身份鑒權。

線上倉庫的效果:

在這里插入圖片描述

2.3、分支管理

什么是分支?

在這里插入圖片描述

​ 在版本回退的章節里,每次提交后都會有記錄,Git把它們串成時間線,形成類似於時間軸的東西,這個時間軸就是一個分支,我們稱之為master分支。

​ 在開發的時候往往是團隊協作,多人進行開發,因此光有一個分支是無法滿足多人同時開發的需求的,並且在分支上工作並不影響其他分支的正常使用,會更加安全,Git鼓勵開發者使用分支去完成一些開發任務。

分支相關指令:

  • 查看分支:git branch

  • 創建分支:git branch 分支名

  • 切換分支:git checkout 分支名

  • 刪除分支:git branch -d 分支名

  • 合並分支:git merge 被合並的分支名

對於新分支,可以使用“git checkout -b 分支名”指令來切換分支,-b選項表示創建並切換,相當於是兩個操作指令。

查看分支:

在這里插入圖片描述
創建分支:

在這里插入圖片描述
切換分支:

在這里插入圖片描述

合並分支:

現在先在dev分支下的readme文件中新增一行並提交本地

在這里插入圖片描述

切換到master分支下觀察readme文件

在這里插入圖片描述
將dev分支的內容與master分支合並:

在這里插入圖片描述

刪除分支:

在這里插入圖片描述

注意:在刪除分支的時候,一定要先退出要刪除的分支,然后才能刪除。
合並所有分支之后,需要將master分支提交線上遠程倉庫中:
在這里插入圖片描述

2.4、沖突的產生與解決

案例:模擬產生沖突。

①同事在下班之后修改了線上倉庫的代碼

在這里插入圖片描述

注意:此時我本地倉庫的內容與線上不一致的。

在這里插入圖片描述
②第二天上班的時候,我沒有做git pull操作,而是直接修改了本地的對應文件的內容

在這里插入圖片描述
③需要在下班的時候將代碼修改提交到線上倉庫(git
push)

在這里插入圖片描述

提示我們要在再次push之前先git pull操作。

【解決沖突】

④先git pull

在這里插入圖片描述

此時git已經將線上與本地倉庫的沖突合並到了對應的文件中。

⑤打開沖突文件,解決沖突

解決方法:需要和同事(誰先提交的)進行商量,看代碼如何保留,將改好的文件再次提交即可。

在這里插入圖片描述
⑥重新提交

在這里插入圖片描述
線上效果:

在這里插入圖片描述

新手上路小技巧:上班第一件事先git pull,可以在一定程度上避免沖突的產生。


三、Git使用技能

1、圖形管理工具

①Github for Desktop

在這里插入圖片描述

​ Github出品的軟件,功能完善,使用方便。對於經常使用GitHub的開發人員來說是非常便捷的工具。界面干凈,用起來非常順手,頂部的分支時間線非常絢麗。

②Source tree

在這里插入圖片描述
​ 老牌的Git GUI管理工具了,也號稱是最好用的Git GUI工具。功能豐富,基本操作和高級操作都非常流暢,適合初學者上手。

③TortoiseGit

在這里插入圖片描述

2、忽略文件

​ 在某些情況下我們希望避免一些我們不希望提交的東西被提交,可以使用忽略文件機制來實現

​ 忽略文件需要新建一個名為.gitignore的文件,該文件用於聲明忽略文件或不忽略文件的規則,規則對當前目錄及其子目錄生效。

注意:該文件因為沒有文件名,沒辦法直接在windows目錄下直接創建,可以通過命令行Git Bash來touch創建。

常見規則寫法有如下幾種:

  • /mtk/ 過濾整個文件夾

  • *.zip 過濾所有.zip文件

  • /mtk/do.c 過濾某個具體文件

  • !index.php 不過濾具體某個文件

在文件中,以#開頭的都是注釋。

案例:

①先在本地倉庫中新建一個js目錄以及目錄中js文件

在這里插入圖片描述
②依次提交本地與線上

在這里插入圖片描述
③新增.gitignore文件

在這里插入圖片描述

④編寫文件中的規則(根據需要編寫)

在這里插入圖片描述

⑤再次提交本地與線上

在這里插入圖片描述

觀察線上倉庫js目錄中是否有新增index.js文件:

在這里插入圖片描述

(我試了一下貌似在配置.gitignore之前就存在的文件在配置了.gitignore之后不能忽略)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM