git入门-基本操作与http/ssh连接远程仓库
學(xué)自:https://www.bilibili.com/video/BV1sJ411D7xN?p=1
轉(zhuǎn)自一篇word
鏈接:https://pan.baidu.com/s/1_agGetbXMjak7B3uECy2gA
提取碼:nm4d
一、Git基礎(chǔ)
1.Git介紹
Git是目前世界上最先進(jìn)的分布式版本控制系統(tǒng)。
ex:
“最終最終最終稿”
除非你就是傳說中的改一步備份一次永遠(yuǎn)不刪除的大師!
如果不是我相信git可以幫助你
2.Git與Github
2.1、兩者的區(qū)別
Git是一個分布式版本控制系統(tǒng),簡單的說其就是一個軟件,用于記錄一個或若干文件內(nèi)容變化,以便將來查閱特定版本修訂情況的軟件。
Github(https://www.github.com)是一個為用戶提供Git服務(wù)的網(wǎng)站,簡單說就是一個可以放代碼的地方(不過可以放的當(dāng)然不僅是代碼)。Github除了提供管理Git的web界面外,還提供了訂閱、關(guān)注、討論組、在線編輯器等豐富的功能。Github被稱之為全球最大的基友網(wǎng)站(凌晨兩三點(diǎn)一群男人在某網(wǎng)站上洽談…)。
2.2、Gitub注冊與git安裝
github官網(wǎng):https://github.com/(記住自己的又想與昵稱)
git安裝:https://git-scm.com/downloads(安裝過程全點(diǎn)下一步就行)
右鍵任意一個目錄出現(xiàn)這兩個就安裝成功啦
二、Git的使用
1.1、本地倉庫
1.1、工作流程
git本地操作的三個區(qū)域
工作流程
1.2、本地倉庫操作
什么是倉庫呢?倉庫又名版本庫,英文名repository,我們可以簡單理解成是一個目錄,用于存放代碼的,這個目錄里面的所有文件都可以被Git管理起來,每個文件的修改、刪除等操作Git都能跟蹤到。
①安裝好進(jìn)行全局配置(右鍵左面選擇Git Bash Here)
此時會彈出一個命令框
$ git config --global user.name “用戶名”
$ git config --global user.email “郵箱地址”
②創(chuàng)建倉庫
? 當(dāng)我們需要讓Git去管理某個新項(xiàng)目/已存在項(xiàng)目的時候,就需要創(chuàng)建倉庫了。注意,創(chuàng)建倉庫時使用的目錄不一定要求是空目錄,選擇一個非空目錄也是可以的,但是不建議在現(xiàn)有項(xiàng)目上來學(xué)習(xí)Git,否則造成的一切后果概不負(fù)責(zé)!
? 注意:為了避免在學(xué)習(xí)或使用過程中出現(xiàn)各種奇葩問題,請不要使用包含中文的目錄名(父目錄亦是如此)。
git倉庫初始化(pro_git該文件名字是任意取的所放的目錄也是任意的)
③Git常用指令操作
git add (
是
軟
件
自
帶
的
,
輸
入
命
令
行
前
面
默
認(rèn)
出
現(xiàn)
是軟件自帶的,輸入命令行前面默認(rèn)出現(xiàn)
是軟件自帶的,輸入命令行前面默認(rèn)出現(xiàn) )
# 傳入一個文件
$ git add 文件名
# 傳入多個文件
$ git add 文件名1 文件名2 文件名3
# 傳入該目錄下的所有文件
$ git add.
git commit -m “注釋內(nèi)容”
1.3、版本回退
主要分為兩個步驟
步驟:
? ①查看版本,確定需要回到的時刻點(diǎn)
? 指令:
? git log
? git log --pretty=oneline
? ②回退操作
? 指令:
? git reset --hard 提交編號
demo: 想坐時光機(jī)回到創(chuàng)建好第一個文件readme.txt的時候。
注意:回到過去之后,要想再回到之前最新的版本的時候,則需要使用指令去查看歷史操作,以得到最新的commit id。
指令:git reflog
小結(jié):
? a. 要想回到過去,必須先得到commit id,然后通過git reset –hard 進(jìn)行回退;
? b. 要想回到未來,需要使用git reflog進(jìn)行歷史操作查看,得到最新的commit id;
? c. 在寫回退指令的時候commit id可以不用寫全,git自動識別,但是也不能寫太少,至少需要寫前4位字符;
2、遠(yuǎn)程倉庫
線上倉庫的操作學(xué)習(xí)以Github為例。
2.1、線上倉庫創(chuàng)建
打開創(chuàng)建倉庫頁面:https://github.com/new
圈出的部分為必填項(xiàng),其余根據(jù)實(shí)際需要選擇性補(bǔ)充:
2.2、兩種常規(guī)使用方式
2.2.1、基于http/https 協(xié)議
a. 創(chuàng)建空目錄,名稱就稱為shop
b. 使用clone指令克隆線上倉庫到本地
語法:git clone 線上倉庫地址
c. 在倉庫上做對應(yīng)的操作(提交暫存區(qū)、提交本地倉庫、提交線上倉庫、拉取線上倉庫)
提交到線上倉庫的指令:git push
在首次往線上倉庫shop提交內(nèi)容的時候出現(xiàn)了403的致命錯誤,原因是不是任何人都可以往線上倉庫提交內(nèi)容,必須需鑒權(quán)。
需要修改“.git/config”文件內(nèi)容:
ex:
如果看到類似上述效果(沒有fatal錯誤)則表示提交成功。
【驗(yàn)證】此時可以觀察瀏覽器,刷新線上倉庫的地址:
拉取線上倉庫:git pull
提醒:
? 在每天工作的第一件事就是先git pull拉取線上最新的版本;每天下班前要做的是git push,將本地代碼提交到線上倉庫。
2.2.2、基于ssh協(xié)議(推薦)
? 該方式與前面https方式相比,只是影響github對于用戶的身份鑒權(quán)方式,對于git****的具體操作(如提交本地、添加注釋、提交遠(yuǎn)程等操作)沒有任何影響。
生成公私玥對指令(需先自行安裝OpenSSH):ssh-keygen -t
rsa -C “注冊郵箱”
步驟:
? ①生成客戶端公私玥文件
? ②將公鑰上傳到Github
實(shí)際操作:
①打開提示
②創(chuàng)建公私玥對文件
③上傳公鑰文件內(nèi)容(id_rsa.pub)
填寫完畢之后保存即可。
④執(zhí)行后續(xù)git操作,操作與先前一樣
a. clone線上倉庫到本地(git clone)
b. 修改文件后添加緩存區(qū)、提交本地倉庫、提交線上倉庫
在push的時候并沒有提示要求我們輸入帳號密碼,因?yàn)楣将h已經(jīng)實(shí)現(xiàn)了用戶身份鑒權(quán)。
線上倉庫的效果:
2.3、分支管理
什么是分支?
? 在版本回退的章節(jié)里,每次提交后都會有記錄,Git把它們串成時間線,形成類似于時間軸的東西,這個時間軸就是一個分支,我們稱之為master分支。
? 在開發(fā)的時候往往是團(tuán)隊(duì)協(xié)作,多人進(jìn)行開發(fā),因此光有一個分支是無法滿足多人同時開發(fā)的需求的,并且在分支上工作并不影響其他分支的正常使用,會更加安全,Git鼓勵開發(fā)者使用分支去完成一些開發(fā)任務(wù)。
分支相關(guān)指令:
查看分支:git branch
創(chuàng)建分支:git branch 分支名
切換分支:git checkout 分支名
刪除分支:git branch -d 分支名
合并分支:git merge 被合并的分支名
對于新分支,可以使用“git checkout -b 分支名”指令來切換分支,-b選項(xiàng)表示創(chuàng)建并切換,相當(dāng)于是兩個操作指令。
查看分支:
創(chuàng)建分支:
切換分支:
合并分支:
現(xiàn)在先在dev分支下的readme文件中新增一行并提交本地
切換到master分支下觀察readme文件
將dev分支的內(nèi)容與master分支合并:
刪除分支:
注意:在刪除分支的時候,一定要先退出要刪除的分支,然后才能刪除。
合并所有分支之后,需要將master分支提交線上遠(yuǎn)程倉庫中:
2.4、沖突的產(chǎn)生與解決
案例:模擬產(chǎn)生沖突。
①同事在下班之后修改了線上倉庫的代碼
注意:此時我本地倉庫的內(nèi)容與線上不一致的。
②第二天上班的時候,我沒有做git pull操作,而是直接修改了本地的對應(yīng)文件的內(nèi)容
③需要在下班的時候?qū)⒋a修改提交到線上倉庫(git
push)
提示我們要在再次push之前先git pull操作。
【解決沖突】
④先git pull
此時git已經(jīng)將線上與本地倉庫的沖突合并到了對應(yīng)的文件中。
⑤打開沖突文件,解決沖突
解決方法:需要和同事(誰先提交的)進(jìn)行商量,看代碼如何保留,將改好的文件再次提交即可。
⑥重新提交
線上效果:
新手上路小技巧:上班第一件事先git pull,可以在一定程度上避免沖突的產(chǎn)生。
三、Git使用技能
1、圖形管理工具
①Github for Desktop
? Github出品的軟件,功能完善,使用方便。對于經(jīng)常使用GitHub的開發(fā)人員來說是非常便捷的工具。界面干凈,用起來非常順手,頂部的分支時間線非常絢麗。
②Source tree
? 老牌的Git GUI管理工具了,也號稱是最好用的Git GUI工具。功能豐富,基本操作和高級操作都非常流暢,適合初學(xué)者上手。
③TortoiseGit
2、忽略文件
? 在某些情況下我們希望避免一些我們不希望提交的東西被提交,可以使用忽略文件機(jī)制來實(shí)現(xiàn)
? 忽略文件需要新建一個名為.gitignore的文件,該文件用于聲明忽略文件或不忽略文件的規(guī)則,規(guī)則對當(dāng)前目錄及其子目錄生效。
? 注意:該文件因?yàn)闆]有文件名,沒辦法直接在windows目錄下直接創(chuàng)建,可以通過命令行Git Bash來touch創(chuàng)建。
常見規(guī)則寫法有如下幾種:
/mtk/ 過濾整個文件夾
*.zip 過濾所有.zip文件
/mtk/do.c 過濾某個具體文件
!index.php 不過濾具體某個文件
在文件中,以#開頭的都是注釋。
案例:
①先在本地倉庫中新建一個js目錄以及目錄中js文件
②依次提交本地與線上
③新增.gitignore文件
④編寫文件中的規(guī)則(根據(jù)需要編寫)
⑤再次提交本地與線上
觀察線上倉庫js目錄中是否有新增index.js文件:
(我試了一下貌似在配置.gitignore之前就存在的文件在配置了.gitignore之后不能忽略)
總結(jié)
以上是生活随笔為你收集整理的git入门-基本操作与http/ssh连接远程仓库的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于 SAP UI5 系统测试工具 UI
- 下一篇: dr股票第二天会涨回来吗,不会