Git安裝/VScode+Git+Github

Git安裝/VScode+Git+Github

1. 相關簡介

  1. githtml

    版本控制工具,支持該工具的網站有Github、BitBucket、Gitorious、國內的OS China倉庫、Csdn倉庫node

  2. shellpython

shelllinux、unix 系統的外殼,也能夠理解爲命令行linux

  1. git bashgit

    git 命令下的模擬終端、bashshell 的一種,最經常使用的 shell 之一github

  2. git GUIshell

    git 命令下的圖形化控制界面windows

2. Git安裝 ( windows環境 )

設置安裝到本地主機(localhost)的路徑後端

選擇組件緩存

  • 紅色區域

    1. 是否在桌面上安裝額外( additional )圖標/快捷鍵
    2. 是否在全部的控制終端窗口使用True Type字體
    3. 是否天天檢查 windows 版本的 git更新
  • 藍色區域(建議)

    1. 是否在 windows 資源管理器集成( intergration ) git bash、git GUI
    2. 是否支持git LFS (Large File Support)
    3. 是否在默認文本編輯器關聯( associate )全部的git 配置文件
    4. 是否關聯 .sh 文件與 bash 一塊兒運行

是否在開始菜單欄顯示 git

選擇默認的 git 編輯器

  • 下面的英文大體意思: Vim 編輯器,是強大的,可是也是很難使用的;它的用戶界面是很是直觀的,可是它的鍵綁定是很是笨拙的
  • Note:Vimgitwindows 上默認的編輯器,是出於歷史緣由;強烈建議更改到現代的GUI編輯器
  • Note:若須要更改,這將使核心編輯器初始化,接下來返回到編輯器環境變量設置;默認編輯器是 Vim,您能夠選擇更換到其餘編輯器

調整新存儲庫中初始分支的名稱

  1. 調整新存儲庫中初始分支的名稱 (您但願 git」git init」 以後爲初始分支取什麼命名?)

  2. 是否讓 git 來決定(默認)eg:「master」

  3. 是否重寫新存儲庫的默認分支名稱;許多團隊已經重命名了他們的默認分支;

    常見的選擇是「main」、「trunk(分支)」和「development」

調整你的 PATH 環境變量

  1. 調整你的 PATH 環境變量

  2. 是否只在 git bash上使用 git

    (這是最安全的選擇,由於您的PATH根本不會被修改。您只能使用 git bashgit 命令行工具。可是這將不能經過第三方軟件使用)

  3. 是否在命令行終端和第三方軟件上使用 git(建議)

    (該選項被認爲是安全的,由於它僅向PATH添加了一些最小的Git包裝器,以免使用可選的 Unix 工具形成環境混亂。

    您將可以從 git bash,命令提示符和 Windows PowerShell 以及在PATH中尋找 git 的任何第三方軟件中使用 git。這也是推薦的選項)

  4. 是否在命令行終端和可選的 Unix 工具上使用 git

    (git 和可選的 unix 工具都將添加到您的PATH中)

    (警告:這將覆蓋 Windows 工具,如 「 find 和 sort 」。只有在瞭解其含義後才使用此選項)

選擇HTTPS傳輸後端

  1. 選擇HTTPS傳輸後端

    您但願 git 將哪一個 SSL/TSL 庫用於HTTPS鏈接?

  2. 是否使用OpenSSL庫

    (服務器證書將使用 ca-bundle.crt 文件進行驗證。這也是咱們經常使用的選項)

  3. 是否使用使用本地 Windows 安全通道庫

    (服務器證書將使用 Windows 證書存儲驗證。此選項還容許您使用公司的內部根CA證書,例如經過 Active Directory Domain Services )

配置行尾符號轉換

  1. 配置行尾符號轉換(conversions)

  2. 簽出 Windows 風格,提交 Unix 風格的行尾

    (簽出文本文件時,git 會將LF轉換爲CRLF。提交文本文件時,CRLF將轉換爲LF。對於跨平臺項目,

    這是 Windows 上的推薦設置(「 core.autocrlf」 設置爲 「 true」 ))

  3. 按原樣簽出,提交 Unix 樣式的行尾

    (簽出文本文件時,git 不會執行任何轉換。 提交文本文件時,CRLF將轉換爲LF。對於跨平臺項目,

    這是Unix上的建議設置(「 core.autocrlf」 設置爲 「 input」 ))

  4. 按原樣簽出,按原樣提交

    (當簽出或提交文本文件時,Git不會執行任何轉換。不建議跨平臺項目選擇此選項(「 core.autocrlf」 設置爲 「 false」 ))

配置終端模擬器(emulator)以與 git bash 一塊兒使用

  1. 配置終端模擬器(emulator)以與 git bash 一塊兒使用

  2. 使用MinTTY(MSYS2的默認終端)

    (git bash 將使用MinTTY做爲終端模擬器,該模擬器具備可調整大小的窗口,非矩形選擇和Unicode 字體。

    Windows 控制檯程序(例如 交互式 Python )必須經過 「 winpty」 啓動才能在MinTTY中運行)

  3. 使用 Windows 的默認控制檯窗口

    (git 將使用 Windows 的默認控制檯窗口(「cmd.exe」),該窗口能夠與 Win32 控制檯程序(如 交互式 Pythonnode.js )一塊兒使用,

    但默認的回滾很是有限,須要配置爲使用 Unicode 字體以正確顯示 非 ASCII 字符,而且在 Windows 10 以前,其窗口不能自由調整大小,

    而且只容許矩形文本選擇)

選擇 git pull 的默認行爲

  1. 選擇 git pull 的默認行爲;默認狀況下「git pull」應該是什麼?

  2. 默認(快進或者合併)

    (這是 「git pull」 的標準行爲:儘量將當前分支快進到獲取的分支,不然建立合併提交)

  3. 從新定義

    (將當前分支重設爲迂迴分支。若是沒有要重設基礎的本地提交,這至關於快速前進)

  4. 永遠只快進

    (快進到獲取的分支。若是不可能,則失敗)

配置憑據幫助

  1. 配置憑據幫助

  2. git 憑據管理器核心

    (使用新的跨平臺版本的憑證管理器在這裏查看有關 git 憑證管理器將來的更多信息)

  3. git 憑據管理器(已棄用)

  4. 無(不使用憑據幫助)

配置額外的選項

  1. 配置額外的選項

  2. 啓用文件系統緩存

    (文件系統數據將被批量讀取並緩存在內存中用於某些操做(「core.fscache」設置爲 「true」 )。 這提供了顯著的性能提高)

  3. 啓用符號連接

    (啓用符號連接(須要 SeCreateSymbolicLink 權限)。請注意,現有存儲庫不受此設置的影響)

配置實驗選項

  1. 配置實驗選項

  2. 啓用對僞控制檯的實驗性支持

    (這容許在 git bash 窗口中運行 nodepython 之類的本機控制檯程序,而不使用 winpty,但它仍然存在已知的 bug

配置環境變量

  • 安裝成功後須要配置 git 環境變量

    注意該步驟爲 gitwindows cmd 命令中配置,若是不配置,直接使用Git Bash便可

  • git 目錄下的 bin(如 C:\Program Files (x86)\Git\bin )添加到 PATH 環境變量中

  • 驗證是否配置成功,打開 windows命令行,輸入 git --version 命令,出現版本號即配置成功

3. Git安裝 ( Mac 環境 )

  • 經過 homebrew 安裝 git
  1. 若沒有安裝 homebrew ,需先安裝 homebrew

    /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  2. 通常上面一種狀況下會報錯,鏈接不上 raw.githubusercontent.com,緣由是域名被污染了,沒法解析

    1. 第一種解決辦法:用SwitchHosts軟件+IPaddress網站重置 raw.githubusercontent.com 這個網站的鏈接IP

    2. 第二種解決辦法 : 使用國內源,下面是中科大源:

      /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"
  3. 安裝好 homebrew,再經過 homebrew,安裝 git

    brew --version  # 查看homebrew的版本,以檢測是否安裝成功
    brew install git   # 安裝git
  4. git 配置(針對 MacLinux

    1. 配置全局變量

      git config --global user.name "用戶名"
      git config --global user.email "郵箱地址"

4. Git安裝 ( Linux 環境 )

  1. CentOS 系統安裝 git

    yum -y install git
  2. Ubuntu系統安裝 git

    sudo apt-get install git

5. VScode下經過 git 鏈接到 github 的遠程倉庫

  1. 生成 ssh 密鑰

    ssh-keygen -C 'your email address@xxx.com' -t rsa  
    # 3次回車,什麼都不用輸入
    # 會在用戶目錄~/.ssh/下創建相應的密鑰文件
  2. 上傳公鑰

    cd ~/.ssh          # 進入.ssh文件夾
    cat id_rsa.pub     # 查看id_rsa.pub文檔下的公鑰,並複製
    # 公鑰是保存在id_rsa.pub文檔中
    # 私鑰是保存在id_rsa文檔中
  3. 將複製下來的公鑰,添加到 githubssh keys

  4. 回到終端,測試是否鏈接成功

    ssh -T 'your email address@xxx.com'
    # 若鏈接成功,會出現'Hi github用戶名!,You've sucessfully authenticated(身份驗證) ……;'
  5. 初始化一個 git 倉庫

    git init newrepo(在newrepo目錄下初始化git倉庫)
    # git倉庫會生成一個 .git 目錄,該目錄包含了資源的全部元數據,其餘的項目目錄保持不變
  6. git 倉庫添加文件

    git add .xxxx   # 添加指定文件
    git add README  # 添加註釋文檔
    git commit -m   # 初始化項目版本
  7. 克隆項目文件到本地

    git clone "github項目地址" <directory>(克隆到指定的本地目錄)
  • 以上方法適用於 MacLinuxWindows 下的實現方式基本也是同樣的

6. 經常使用 git 命令清單 ( 備用 )

  1. 經常使用6個命令

    # 專用名詞譯名
    
    1. Workspace:工做區
    2. Index/Stage:暫存區
    3. Repository:倉庫區(或本地倉庫)
    4. Remote:遠程倉庫
  2. 新建倉庫

    $ git init
    # 在當前目錄新建一個Git代碼庫
    
    $ git init [project-name]
    # 新建一個目錄,將其初始化爲Git代碼庫
    
    $ git clone [url](github上項目的地址)
    # 下載一個項目和它的整個代碼歷史
  3. 配置

    # 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]"
    # 設置提交代碼時的用戶信息
  4. 增長/刪除文件

    $ 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]
    # 更名文件,而且將這個更名放入暫存區
  5. 代碼提交

    $ 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,幷包括指定文件的新變化
  6. 分支

    $ 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]
    # 刪除遠程分支
  7. 標籤

    $ 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
  8. 查看信息

    $ 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
    # 顯示當前分支的最近幾回提交
  9. 遠程同步

    $ 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
    # 推送全部分支到遠程倉庫
  10. 撤銷

    $ 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
    # 生成一個可供發佈的壓縮包
  1. git git bash git shell的區別:https://blog.csdn.net/BSBSDXBD/article/details/51090004
  2. git-Windows :http://www.javashuo.com/article/p-gdpweioe-dm.html
  3. git-Macos :https://www.cnblogs.com/guoccf/p/13089913.html
  4. git-Macos :https://www.cnblogs.com/wuliqqq/p/13233262.html
  5. 配置git :https://www.jianshu.com/p/6e1de95828a8
  6. git-Ubuntu :https://www.cnblogs.com/larry2016/p/13977251.html
  7. git-Linux :https://www.cnblogs.com/fuzongle/p/12830572.html
  8. 經常使用 git 命令清單:https://www.ruanyifeng.com/blog/2015/12/git-cheat-sheet.html
相關文章
相關標籤/搜索