Git是一個優秀的版本管理工具,gitHub是一個公共的倉庫,可以將代碼保存在雲端~Git和GitHub的搭配讓廣大程序猿們可以一起和諧愉快地敲代碼啦~(參考了:https://www.liaoxuefeng.com/wiki/896043488029600/896067074338496,謝謝)
目錄
一、下載與安裝
下載地址:https://git-scm.com/downloads
選擇你的操作系統,下載對應版本,一路默認安裝就好啦
二、修改基本配置
1、設置用戶名與郵箱
$ git config --global user.name "Your Name"
$ git config --global user.email "[email protected]"
- 查看用戶名與郵箱
$ git config user.name
$ git config user.email
2、修改GitBash的用戶主目錄
環境變量》新增》Home:D:/your_workPlace
3、設置倉庫位置
實際上,步驟二就已經設置了倉庫位置啦,但還要初始化一下,有兩種方法
- 方法1:打開你想要設置倉庫的位置,右鍵git bash,然後輸入指令:git init
- 方法2:在git bash中按如下順序操作
cd /G |進入目標磁盤
mkdir gitPro |創建文件夾
cd gitPro |進入該文件夾
pwd |當前文件夾路徑
git init |將該文件夾設置爲倉庫
三、開始管理本地文件
1、注意
- 版本控制系統只能跟蹤文本文件的改動,比如TXT文件,網頁,所有的程序代碼,沒法跟蹤Word文件的改動。
- Git優秀之處在於:Git跟蹤並管理的是修改,而非文件。屬於增量型~
- 爲了避免編碼問題,建議使用notepad++創建txt,而非window自帶的方式創建
2、開始管理
(1)單個添加
- 在倉庫目錄下創建一個文件,例如:try.txt
- 右鍵打開git bash,鍵入兩句指令就可以了
- 第一句,將文件放到暫存區,輸完回車:git add try.txt
- 第二句,提交至本地倉庫,-m"信息"最好寫上,否則會出現討厭的vim界面:git commit -m"可以是中文哦"
(2) 批量添加
- 按文件夾添加:git add 文件夾/
- 按類型添加:git add *.文件類型
- 添加全部:git add -A
- 添加全部:git add .
- 可以add 多個然後一起commit
- add和commit合併一起:git commit -am"信息"
(3) 暫存區與本地倉庫的原理
- 工作區:在電腦裏能看到的目錄,如work_place
- 版本庫:.git隱藏文件。其中存儲了很多東西:
- ·stage/index 暫存區
- master分支:git爲我們主動創建的第一個分支
- HEAD:指向master的一個指針
3、分支
我們可以在不同的分支上工作,就放佛拷貝了原文件的一個副本,然後盡情地修改,而不要擔心會丟失、損壞原來的文件。
“提倡使用子分支:創建、合併和刪除分支非常快,所以Git鼓勵你使用分支完成某個任務,合併後再刪掉分支,這和直接在master分支上工作效果是一樣的,但過程更安全。”
(1) 創建分支:git branch yourBranchName
(2) 切換分支:git checkout yourBranchName
(3) 合併以上,創建並切換分支:git checkout -b yourBranchName
(4) 查看分支:git branch
(5) 刪除分支:git branch -d yourBranchName
(6)合併某分支到當前分支:git merge yourBranchName
4、查看日誌與回滾
查看過去的日誌可以知道自己做了什麼,然後根據日誌的名稱,可以讓文件恢復到過去的狀態
(1)最原始的查看日誌(不推薦,因爲太詳細了!):git log
(2)只看簡要信息(推薦):git log --pretty=oneline
(3)推出log狀態:Q
日誌中那一長串黃色字符,是日誌的名字,根據它來定位要回滾的位置,不用擔心名字太長,可以只輸入前面的幾位,開始回滾啦!
(1) 回滾到指定位置:git reset --hard e9f072
(2)回滾到上一版本:git reset --hard HEAD^
(3)回滾到上上一版本:git reset --hard HEAD^^
如果又反悔了,要回滾到“將來”怎麼辦——通過git reflog查看每一次命令對應的版本號,從而還原
5、撤銷修改
(1) 撤銷工作區:讓文件回到最近一次git commit或git add時的狀態。(將沒有add到暫存區的修改全部撤銷)
git checkout --yourfile
(2)把暫存區的修改撤銷掉(unstage),重新放回工作區
git reset HEAD yourfile
四、開啓遠程倉庫
1、註冊一個gitHub的賬號
這個不說啦
2、生成SSH碼並保存到GitHub相關配置中
什麼要SSH Key:因爲GitHub需要識別出你推送的提交確實是你推送的,而不是別人冒充的,而Git支持SSH協議,所以,GitHub只要知道了你的公鑰,就可以確認只有你自己才能推送。
允許多個Key:假定你有若干電腦,你一會兒在公司提交,一會兒在家裏提交,只要把每臺電腦的Key都添加到GitHub,就可以在每臺電腦上往GitHub推送了。
(1)指令:ssh-keygen -t rsa -C "[email protected]"
如果沒有更改用戶目錄,則生成的.shh文件在C:/user的目錄下哦,更改目錄的方法往上翻
(2) 打開.shh文件夾,其中.pub是公鑰,即我們要保存到GitHub中的SSH Key
用notepad++打開,然後複製
(3) 打開gitHub的setting,選擇SSH and GPG Keys,點擊new SSH Key,title隨便取一個,自己記得的,再將公鑰粘貼到框框中。
3、建立遠程連接
情景:你已經在本地創建了一個Git倉庫後,又想在GitHub創建一個Git倉庫,並且讓這兩個倉庫進行遠程同步,這樣,GitHub上的倉庫既可以作爲備份,又可以讓其他人通過該倉庫來協作。
(1) 將本地主分支與遠程倉庫鏈接:
- 創建遠程連接,名字叫做origion:$ git remote add origin [email protected]:yourGitHubName/yourRepositoryName.git
- 首次將當前分支內的文件推送到遠程服務器:$ git push -u origin master
第一次連接時可能會報錯:he authenticity of host 'github.com (xx.xx.xx.xx)' can't be established. 點yes就行了
-u參數的作用:第一次連接遠程庫的時候加上,Git不但會把本地的master分支內容推送的遠程新的master分支,還會把本地的master分支和遠程的master分支關聯起來,在以後的推送或者拉取時就可以簡化命令。
(2) 創建本地分支,並與遠程某分支連接
- 創建遠程origin的dev分支到本地:git checkout -b dev origin/dev
- 本地和遠程分支的名稱最好一致;
4、把代碼發到遠程倉庫
(1) 完整指令:git push origin <branch-name>
(2)如果當前分支就是對應的遠程的那個分支,則直接:git push
5、從遠程倉庫拉取代碼
(1) 第一次克隆:git clone [email protected]:yourGitHubName/yourRepositoryName.git
(2)已經建立過連接了,且當前分支和遠程分支相對應:git pull
6、處理衝突
(1) 查看衝突的文件:git status
(2)圖形化管理工具,此處推薦小烏龜工具:https://tortoisegit.org/
(3)出現vim界面怎麼辦?
我曾經試着去輸入一些信息,但總是失敗……甚至給下一次push帶來了困難,於是放棄了……
自暴自棄的方案:shift+; 再輸入wq,就是保存退出。如果是wq!,就是不保存退出
7、多人協作時的好習慣
(1)幹完活記得先add、再commit、接着pull、最後push
(2)新的一天開始了,先pull,再開始幹活!