Git操作指南+管理Github

GitHub是世界上最大的軟件遠程倉庫,是一個面向開源和私有軟件項目的託管平臺,使用Git做分佈式版本控制。學會操作使用Git其實是爲了管理Github服務
Git是一個開源的版本控制系統 (VCS),實現分佈式版本控制的一個工具,用於實現文件歷史管理的工具,常用於軟件項目的版本管理

Git官方下載地址: https://www.git-scm.com/download/win
在這裏插入圖片描述

Git工作區域:

在這裏插入圖片描述

Git 的基本命令行操作

Git工具的命令操作類似於linux系統

配置賬號信息:包括用戶名和 email 地址,Git 依據此信息區分各個用戶,在github倉庫主頁顯示誰提交了該文件
命令格式:

$ git config --global user.name 'user-name'
$ git config --global user.email 'email'

- -global 參數表示本機上的所有 Git 倉庫都使用該配置信息。通常,一臺電腦對應一個開發者,該電腦上的所有本地倉庫都使用同樣的賬號信息。

【擴展】若一臺電腦被多個開發者使用,則每個開發者有不同的工作目錄,包含了各自的本地倉庫。此時,應在各自的工作目錄下執行 git config user.name ‘userName’ 命令,這樣每個工作目錄提交代碼時使用的是不同的賬號。

初始化本地倉庫

$ git init

本地倉庫位於工作目錄下的 .git 目錄中,本地倉庫中保存了 Git 管理的項目文件以及各個文件的歷史版本,該目錄由 Git 管理和維護,禁止手動修改。

把文件添加到 Git 倉庫暫存區

$ git add xxx 		# 暫存當前目錄下的 xxx文件
$ git add . 		# 暫存當前目錄下所有未跟蹤的和已修改的文件

文件分類和狀態:
工作目錄下的文件,分爲未跟蹤和已跟蹤的文件:
未跟蹤的文件:是指該文件未被納入版本控制,Git 不會記錄該文件的任何改動。
已跟蹤的文件:是指該文件已被納入版本控制,Git 將監視用戶對這些文件的操作,文件可能會處於不同的狀態。已跟蹤文件可能會處於如下三種狀態之一:已修改(modified)、已暫存(staged)和已提交(committed)。
已修改:是指該文件自上次保存後又被修改了但還沒有暫存;
已暫存:是指該文件已被暫存到本地倉庫中,但還未提交;
已提交:是指該文件已被保存在本地倉庫中的某個版本中了。

對文件的增刪改查使用文本編輯器 vi 或 vim 工具,操作等同與Linux系統:
https://blog.csdn.net/suoyue_py/article/details/104183622

提交

$ git commit -m '提交說明'

將所有暫存的文件永久保存到本地倉庫中。-m 選項後面跟的是本次提交的說明。

通常的做法是:多次使用 git add命令暫存多個文件,最後使用 git commit一次性提交產生一個版本記錄。

使用-a 參數將暫存和提交一步完成:

$ git commit -a -m "註釋" 		#提交所有已修改的文件,未跟蹤的文件不做處理

查看文件狀態

$ git status		#命令查看工作目錄下的文件狀態

紅色文件名錶示該文件要麼是未跟蹤,要麼是已修改還未暫存
綠色文件名錶示已暫存但未提交的文件

查看版本記錄

$ git log

默認按照從最近到最遠的順序顯示提交記錄。如果嫌輸出信息太多,可加上–pretty=oneline 參數:$ git log --pretty=oneline

指明Github遠程倉庫

git remote add origin 倉庫地址

上傳到Github遠程倉庫

git push -u origin master

在這裏插入圖片描述

Git管理遠程倉庫

使用遠程倉庫的目的/作用:備份,實現代碼共享集中化管理
在這裏插入圖片描述

將本地倉庫同步到git遠程倉庫中
由於本地 Git 倉庫和 GitHub 倉庫之間的傳輸是通過SSH加密的,所以需要使用Git 來配置驗證信息,使用以下命令生成 SSH Key:

$ ssh-keygen -t rsa -C "@Github上註冊的郵箱"

之後會要求確認路徑和輸入密碼,此處默認,一路回車即可。成功的話會在系統盤的用戶目錄下生成 .ssh 文件夾,進去後用記事本打開 id_rsa.pub 文件,複製裏面的內容 -->> key(Ctrl+A/C)
在這裏插入圖片描述

回到 github 上,進入 Account -->> Settings(賬戶配置),左邊選擇 SSH and GPG keys,然後點擊 New SSH key 按鈕,title ->>設置標題,可以隨便填,Key ->> 粘貼上面生成的 key
在這裏插入圖片描述
添加成功後界面如下所示
在這裏插入圖片描述可輸入以下命令,驗證是否成功:

$ ssh -T [email protected]

到此成功,即可按照上面Git的步驟來管理Github

其他操作

查看當前配置的遠程庫(即別名

$ git remote

加上 -v 參數,可以看到每個別名的實際鏈接地址

$ git remote -v

刪除遠程倉庫:

$ git remote rm [別名]

Git克隆操作 /目的
將遠程倉庫(github對應的項目)複製到本地

$ git clone 倉庫地址

檢出

$ git checkout 

命令有兩種功能:

  • 一是檢出文件(使用本地倉庫中的文件覆蓋工作區中的文件)
  • 二是檢出分支

檢出單個文件:使用本地倉庫中暫存的或已提交的文件覆蓋工作區中的文件

$ git checkout -- <file-name>

檢出所有文件:使用本地倉庫中的所有文件覆蓋工作區的所有文件

$ git checkout .

【擴展】

檢出命令完整格式:

$ git checkout [<commit hash>] [--] <paths>
  • 若未提供commit hash,則檢出倉庫中最新的版本
  • 若提供了commit hash,則檢出指定的版本中的文件,此時暫存的文件會被清除

【示例】

$ git checkout 26a2e80 – readme.txt
$ git checkout HEAD – readme.txt #檢出最後一次提交的文件,暫存內容會被清除

HEAD 是 Git 中的一個指針,通常指向當前分支,此處表示檢出當前分支的最後一次提交的文件。

$ git checkout 26a2e80 #如果未給出文件路徑,則檢出指定版本的所有文件覆蓋工作區,此時 HEAD將處於遊離狀態,如果不使用相關的命令讓 HEAD 指向某個分支,則後續無法執行提交操作。

$ git checkout master

這樣 HEAD就指向了 master 分支,以後的提交都是在 master 分支上進行。

重置單個文件:主要用來清除暫存的文件,不影響工作區中的文件內容

$ git reset <file-name>

【示例】$ git reset project.ini

重置後工作區文件的狀態會發生改變:如果該文件從未提交過,則文件變爲未跟蹤的;如果曾經提交過,則文件狀態變爲已修改未暫存。

重置 本地倉庫 整個項目 到特定版本

$ git reset --hard <Commit Hash>

此操作會將本地倉庫中當前分支重置到指定的版本,後續的提交被丟棄。
- - hard 參數表示工作目錄下的文件也被重置。如果沒有–hard 參數,則只重置倉庫中的版本,工作區中的文件保持現狀不被重置。

【示例】重置爲某個特定版本,可使用對應的版本號(版本號前幾位即可):

$ git reset --hard 3628164

另外,HEAD 代表當前分支的最新版本,上個版本可使用 HEAD^表示,上上個版本則是 HEAD^^,多個 ^ 可寫成 HEAD~n。

【示例】$ git reset --hard HEAD^

說在最後:需要詳細文檔可於公衆號"suoyue_zhan" (下方掃碼直達)後臺回覆 git

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章