Git安裝/VScode+Git+Github
1. 相關簡介
-
git
版本控制工具,支持該工具的網站有Github、BitBucket、Gitorious、國內的OS China倉庫、Csdn倉庫等
-
shell
shell 是 linux、unix 系統的外殼,也可以理解為命令列
-
git bash
git 命令下的模擬終端、bash 是 shell 的一種,最常用的 shell 之一
-
git GUI
git 命令下的圖形化控制界面
2. Git安裝 ( windows環境 )
設定安裝到本地主機(localhost)的路徑
? 
選擇組件
? 
-
紅色區域
- 是否在桌面上安裝額外( additional )圖示/快捷鍵
- 是否在所有的控制終端視窗使用True Type字體
- 是否每天檢查 windows 版本的 git更新
-
藍色區域(建議)
- 是否在 windows 資源管理器集成( intergration ) git bash、git GUI
- 是否支持git LFS (Large File Support)
- 是否在默認文本編輯器關聯( associate )所有的git 組態檔
- 是否關聯 .sh 檔案與 bash 一起運行
是否在開始選單欄顯示 git
? 
選擇默認的 git 編輯器
? 
- 下面的英文大致意思: Vim 編輯器,是強大的,但是也是很難使用的;它的用戶界面是非常直觀的,但是它的鍵系結是非常笨拙的
- Note:Vim 是 git 在 windows 上默認的編輯器,是出于歷史原因;強烈建議更改到現代的GUI編輯器
- Note:若需要更改,這將使核心編輯器初始化,接下來回傳到編輯器環境變數設定;默認編輯器是 Vim,您可以選擇更換到其他編輯器
調整新存盤庫中初始分支的名稱

-
調整新存盤庫中初始分支的名稱 (您希望 git 在 ”git init” 之后為初始分支取什么命名?)
-
是否讓 git 來決定(默認)eg:“master”
-
是否重寫新存盤庫的默認分支名稱;許多團隊已經重命名了他們的默認分支;
常見的選擇是“main”、“trunk(分支)”和“development”
調整你的 PATH 環境變數
? 
-
調整你的 PATH 環境變數
-
是否只在 git bash上使用 git
(這是最安全的選擇,因為您的PATH根本不會被修改,您只能使用 git bash 的 git 命令列工具,但是這將不能通過第三方軟體使用)
-
是否在命令列終端和第三方軟體上使用 git(建議)
(該選項被認為是安全的,因為它僅向PATH添加了一些最小的Git包裝器,以避免使用可選的 Unix 工具造成環境混亂,
您將能夠從 git bash,命令提示符和 Windows PowerShell 以及在PATH中尋找 git 的任何第三方軟體中使用 git,這也是推薦的選項)
-
是否在命令列終端和可選的 Unix 工具上使用 git
(git 和可選的 unix 工具都將添加到您的PATH中)
(警告:這將覆寫 Windows 工具,如 “ find 和 sort ”,只有在了解其含義后才使用此選項)
選擇HTTPS傳輸后端
? 
-
選擇HTTPS傳輸后端
您希望 git 將哪個 SSL/TSL 庫用于HTTPS連接?
-
是否使用OpenSSL庫
(服務器證書將使用 ca-bundle.crt 檔案進行驗證,這也是我們常用的選項)
-
是否使用使用本地 Windows 安全通道庫
(服務器證書將使用 Windows 證書存盤驗證,此選項還允許您使用公司的內部根CA證書,例如通過 Active Directory Domain Services )
配置行尾符號轉換
? 
-
配置行尾符號轉換(conversions)
-
簽出 Windows 風格,提交 Unix 風格的行尾
(簽出文本檔案時,git 會將LF轉換為CRLF,提交文本檔案時,CRLF將轉換為LF,對于跨平臺專案,
這是 Windows 上的推薦設定(“ core.autocrlf” 設定為 “ true” ))
-
按原樣簽出,提交 Unix 樣式的行尾
(簽出文本檔案時,git 不會執行任何轉換, 提交文本檔案時,CRLF將轉換為LF,對于跨平臺專案,
這是Unix上的建議設定(“ core.autocrlf” 設定為 “ input” ))
-
按原樣簽出,按原樣提交
(當簽出或提交文本檔案時,Git不會執行任何轉換,不建議跨平臺專案選擇此選項(“ core.autocrlf” 設定為 “ false” ))
配置終端模擬器(emulator)以與 git bash 一起使用
? 
-
配置終端模擬器(emulator)以與 git bash 一起使用
-
使用MinTTY(MSYS2的默認終端)
(git bash 將使用MinTTY作為終端模擬器,該模擬器具有可調整大小的視窗,非矩形選擇和Unicode 字體,
Windows 控制臺程式(例如 互動式 Python )必須通過 “ winpty” 啟動才能在MinTTY中運行)
-
使用 Windows 的默認控制臺視窗
(git 將使用 Windows 的默認控制臺視窗(“cmd.exe”),該視窗可以與 Win32 控制臺程式(如 互動式 Python 或 node.js )一起使用,
但默認的回滾非常有限,需要配置為使用 Unicode 字體以正確顯示 非 ASCII 字符,并且在 Windows 10 之前,其視窗不能自由調整大小,
并且只允許矩形文本選擇)
選擇 git pull 的默認行為
? 
-
選擇 git pull 的默認行為;默認情況下“git pull”應該是什么?
-
默認(快進或者合并)
(這是 “git pull” 的標準行為:盡可能將當前分支快進到獲取的分支,否則創建合并提交)
-
重新定義
(將當前分支重設為迂回分支,如果沒有要重設基礎的本地提交,這相當于快速前進)
-
永遠只快進
(快進到獲取的分支,如果不可能,則失敗)
配置憑據幫助
? 
-
配置憑據幫助
-
git 憑據管理器核心
(使用新的跨平臺版本的憑證管理器在這里查看有關 git 憑證管理器未來的更多資訊)
-
git 憑據管理器(已棄用)
-
無(不使用憑據幫助)
配置額外的選項
? 
-
配置額外的選項
-
啟用檔案系統快取
(檔案系統資料將被批量讀取并快取在記憶體中用于某些操作(“core.fscache”設定為 “true” ), 這提供了顯著的性能提升)
-
啟用符號鏈接
(啟用符號鏈接(需要 SeCreateSymbolicLink 權限),請注意,現有存盤庫不受此設定的影響)
配置實驗選項
? 
-
配置實驗選項
-
啟用對偽控制臺的實驗性支持
(這允許在 git bash 視窗中運行 node 或 python 之類的本機控制臺程式,而不使用 winpty,但它仍然存在已知的 bug )
配置環境變數
-
安裝成功后需要配置 git 環境變數
注意該步驟為 git 在 windows cmd 命令中配置,如果不配置,直接使用Git Bash即可
-
git 目錄下的 bin(如 C:\Program Files (x86)\Git\bin )添加到 PATH 環境變數中
-
驗證是否配置成功,打開 windows命令列,輸入 git --version 命令,出現版本號即配置成功
3. Git安裝 ( Mac 環境 )
- 通過 homebrew 安裝 git
-
若沒有安裝 homebrew ,需先安裝 homebrew
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" -
一般上面一種情況下會報錯,連接不上 raw.githubusercontent.com,原因是域名被污染了,無法決議
-
第一種解決辦法:用SwitchHosts軟體+IPaddress網站重置 raw.githubusercontent.com 這個網站的連接IP
-
第二種解決辦法 : 使用國內源,下面是中科大源:
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"
-
-
安裝好 homebrew,再通過 homebrew,安裝 git
brew --version # 查看homebrew的版本,以檢測是否安裝成功 brew install git # 安裝git -
git 配置(針對 Mac 和 Linux)
-
配置全域變數
git config --global user.name "用戶名" git config --global user.email "郵箱地址"
-
4. Git安裝 ( Linux 環境 )
-
CentOS 系統安裝 git
yum -y install git -
Ubuntu系統安裝 git
sudo apt-get install git
5. VScode下通過 git 連接到 github 的遠程倉庫
-
生成 ssh 密鑰
ssh-keygen -C 'your email [email protected]' -t rsa # 3次回車,什么都不用輸入 # 會在用戶目錄~/.ssh/下建立相應的密鑰檔案 -
上傳公鑰
cd ~/.ssh # 進入.ssh檔案夾 cat id_rsa.pub # 查看id_rsa.pub檔案下的公鑰,并復制 # 公鑰是保存在id_rsa.pub檔案中 # 私鑰是保存在id_rsa檔案中 -
將復制下來的公鑰,添加到 github 的 ssh keys 里
-
回到終端,測驗是否連接成功
ssh -T 'your email [email protected]' # 若連接成功,會出現'Hi github用戶名!,You've sucessfully authenticated(身份驗證) ……;' -
初始化一個 git 倉庫
git init newrepo(在newrepo目錄下初始化git倉庫) # git倉庫會生成一個 .git 目錄,該目錄包含了資源的所有元資料,其他的專案目錄保持不變 -
向 git 倉庫添加檔案
git add .xxxx # 添加指定檔案 git add README # 添加注釋檔案 git commit -m # 初始化專案版本 -
克隆專案檔案到本地
git clone "github專案地址" <directory>(克隆到指定的本地目錄)
- 以上方法適用于 Mac 和 Linux ;Windows 下的實作方式基本也是一樣的
6. 常用 git 命令清單 ( 備用 )
-
常用6個命令

# 專用名詞譯名 1. Workspace:作業區 2. Index/Stage:暫存區 3. Repository:倉庫區(或本地倉庫) 4. Remote:遠程倉庫 -
新建倉庫
$ git init # 在當前目錄新建一個Git代碼庫 $ git init [project-name] # 新建一個目錄,將其初始化為Git代碼庫 $ git clone [url](github上專案的地址) # 下載一個專案和它的整個代碼歷史 -
配置
# git的設定檔案為.gitconfig,它可以在用戶主目錄下(全域配置),也可以在專案目錄下(專案配置) $ git config --list # 顯示當前的Git配置 $ git config -e [--global] # 編輯Git組態檔 $ git config [--global] user.name "[name]" $ git config [--global] user.email "[your email address]" # 設定提交代碼時的用戶資訊 -
增加/洗掉檔案
$ git add [file1] [file2] ... # 添加指定檔案到暫存區 $ git add [dir] # 添加指定目錄到暫存區,包括子目錄 $ git add . # 添加當前目錄的所有檔案到暫存區 $ git add -p # 添加每個變化前,都會要求確認 # 對于同一個檔案的多處變化,可以實作分次提交 $ git rm [file1] [file2] ... # 洗掉作業區檔案,并且將這次洗掉放入暫存區 $ git rm --cached [file] # 停止追蹤指定檔案,但該檔案會保留在作業區 $ git mv [file-original] [file-renamed] # 改名檔案,并且將這個改名放入暫存區 -
代碼提交
$ git commit -m [message] # 提交暫存區到倉庫區 $ git commit [file1] [file2] ... -m [message] # 提交暫存區的指定檔案到倉庫區 $ git commit -a # 提交作業區自上次commit之后的變化,直接到倉庫區 $ git commit -v # 提交時顯示所有diff資訊 $ git commit --amend -m [message] # 使用一次新的commit,替代上一次提交 # 如果代碼沒有任何新變化,則用來改寫上一次commit的提交資訊 $ git commit --amend [file1] [file2] ... # 重做上一次commit,并包括指定檔案的新變化 -
分支
$ git branch # 列出所有本地分支 $ git branch -r # 列出所有遠程分支 $ git branch -a # 列出所有本地分支和遠程分支 $ git branch [branch-name] # 新建一個分支,但依然停留在當前分支 $ git checkout -b [branch] # 新建一個分支,并切換到該分支 $ git branch [branch] [commit] # 新建一個分支,指向指定commit $ git branch --track [branch] [remote-branch] # 新建一個分支,與指定的遠程分支建立追蹤關系 $ git checkout [branch-name] # 切換到指定分支,并更新作業區 $ git checkout - # 切換到上一個分支 $ git branch --set-upstream [branch] [remote-branch] # 建立追蹤關系,在現有分支與指定的遠程分支之間 $ git merge [branch] # 合并指定分支到當前分支 $ git cherry-pick [commit] # 選擇一個commit,合并進當前分支 $ git branch -d [branch-name] # 洗掉分支 $ git push origin --delete [branch-name] $ git branch -dr [remote/branch] # 洗掉遠程分支 -
標簽
$ git tag # 列出所有tag $ git tag [tag] # 新建一個tag在當前commit $ git tag [tag] [commit] # 新建一個tag在指定commit $ git tag -d [tag] # 洗掉本地tag $ git push origin :refs/tags/[tagName] # 洗掉遠程tag $ git show [tag] # 查看tag資訊 $ git push [remote] [tag] # 提交指定tag $ git push [remote] --tags # 提交所有tag $ git checkout -b [branch] [tag] # 新建一個分支,指向某個tag -
查看資訊
$ git status # 顯示有變更的檔案 $ git log # 顯示當前分支的版本歷史 $ git log --stat # 顯示commit歷史,以及每次commit發生變更的檔案 $ git log -S [keyword] # 搜索提交歷史,根據關鍵詞 $ git log [tag] HEAD --pretty=format:%s # 顯示某個commit之后的所有變動,每個commit占據一行 $ git log [tag] HEAD --grep feature # 顯示某個commit之后的所有變動,其"提交說明"必須符合搜索條件 $ git log --follow [file] $ git whatchanged [file] # 顯示某個檔案的版本歷史,包括檔案改名 $ git log -p [file] # 顯示指定檔案相關的每一次diff $ git log -5 --pretty --oneline # 顯示過去5次提交 $ git shortlog -sn # 顯示所有提交過的用戶,按提交次數排序 $ git blame [file] # 顯示指定檔案是什么人在什么時間修改過 $ git diff # 顯示暫存區和作業區的差異 $ git diff --cached [file] # 顯示暫存區和上一個commit的差異 $ git diff HEAD # 顯示作業區與當前分支最新commit之間的差異 $ git diff [first-branch]...[second-branch] # 顯示兩次提交之間的差異 $ git diff --shortstat "@{0 day ago}" # 顯示今天你寫了多少行代碼 $ git show [commit] # 顯示某次提交的元資料和內容變化 $ git show --name-only [commit] # 顯示某次提交發生變化的檔案 $ git show [commit]:[filename] # 顯示某次提交時,某個檔案的內容 $ git reflog # 顯示當前分支的最近幾次提交 -
遠程同步
$ git fetch [remote] # 下載遠程倉庫的所有變動 $ git remote -v # 顯示所有遠程倉庫 $ git remote show [remote] # 顯示某個遠程倉庫的資訊 $ git remote add [shortname] [url] # 增加一個新的遠程倉庫,并命名 $ git pull [remote] [branch] # 取回遠程倉庫的變化,并與本地分支合并 $ git push [remote] [branch] # 上傳本地指定分支到遠程倉庫 $ git push [remote] --force # 強行推送當前分支到遠程倉庫,即使有沖突 $ git push [remote] --all # 推送所有分支到遠程倉庫 -
撤銷
$ git checkout [file] # 恢復暫存區的指定檔案到作業區 $ git checkout [commit] [file] # 恢復某個commit的指定檔案到暫存區和作業區 $ git checkout . # 恢復暫存區的所有檔案到作業區 $ git reset [file] # 重置暫存區的指定檔案,與上一次commit保持一致,但作業區不變 $ git reset --hard # 重置暫存區與作業區,與上一次commit保持一致 $ git reset [commit] # 重置當前分支的指標為指定commit,同時重置暫存區,但作業區不變 $ git reset --hard [commit] # 重置當前分支的HEAD為指定commit,同時重置暫存區和作業區,與指定commit一致 $ git reset --keep [commit] # 重置當前HEAD為指定commit,但保持暫存區和作業區不變 $ git revert [commit] # 新建一個commit,用來撤銷指定commit # 后者的所有變化都將被前者抵消,并且應用到當前分支 $ git stash $ git stash pop # 暫時將未提交的變化移除,稍后再移入 # 其它 $ git archive # 生成一個可供發布的壓縮包
- git git bash git shell的區別:https://blog.csdn.net/BSBSDXBD/article/details/51090004
- git-Windows :https://www.cnblogs.com/xueweisuoyong/p/11914045.html
- git-Macos :https://www.cnblogs.com/guoccf/p/13089913.html
- git-Macos :https://www.cnblogs.com/wuliqqq/p/13233262.html
- 配置git :https://www.jianshu.com/p/6e1de95828a8
- git-Ubuntu :https://www.cnblogs.com/larry2016/p/13977251.html
- git-Linux :https://www.cnblogs.com/fuzongle/p/12830572.html
- 常用 git 命令清單:https://www.ruanyifeng.com/blog/2015/12/git-cheat-sheet.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/246040.html
標籤:其他
上一篇:API檔案管理
