git介紹及常用命令

2021-10-25 08:12:28 字數 3123 閱讀 6493

git 是乙個開源的分布式版本控制系統,用於敏捷高效地處理任何或小或大的專案。

2.1 git 是分布式的, svn是非分布式的;

2.2 git 把內容按元資料方式儲存,而 svn 是按檔案;

2.3 git 分支和 svn 的分支不同:分支在 svn 中就是版本庫中的另外乙個目錄;

2.4 git 沒有乙個全域性的版本號;

2.5 git 的內容儲存使用的是 sha-1 雜湊演算法。這能確保**內容的完整性,確保在遇到磁碟故障和網路問題時降低對版本庫的破壞。

3.1 工作區:

專案所在的目錄/資料夾,是git init 命令初始化後,git所管理的本地路徑;

3.2 暫存區:

stage或index,一般存放在 「.git目錄下」 下的index檔案(.git/index)中,要將工作區的內容提交到分支,需要先使用git add filename 命令提交到暫存區,再使用 git commit -m 「remark」 命令提交到當前分支。

3.3 版本庫:

工作區有乙個隱藏目錄.git,這個不算工作區,而是git的版本庫。標記為 「master」 的是 master 分支所代表的目錄樹。

3.4 相關操作命令:

git reset head:暫存區的目錄樹會被重寫,被 master 分支指向的目錄樹所替換,但是工作區不受影響。

git rm –cached:直接從暫存區刪除檔案,工作區則不做出改變。

git checkout . 或git checkout – :用暫存區全部或指定的檔案替換工作區的檔案。這個操作很危險,會清除工作區中未新增到暫存區的改動。

git checkout head . 或 git checkout head :會用 head 指向的 master 分支中的全部或者部分檔案替換暫存區和以及工作區中的檔案。這個命令也是極具危險性的,因為不但會清除工作區中未提交的改動,也會清除暫存區中未提交的改動。

git status:檢視狀態,包括工作區和暫存區的狀態

git add filename:將工作區的修改,提交到暫存區

git commit -m 「remark」:將暫存區的修改提交到當前分支.

git commit -am 「remark」:將工作區的修改提交到暫存區,然後提交到當前分支,相當於git add 和 git commit 的合併。

git diff head – filename :檢視工作區和版本庫最新版本的區別.

4.1 撤銷工作區的修改:

git checkout – filename 只是撤銷工作區的修改,對於已經add到暫存區的修改無法撤銷。

4.2 撤銷暫存區的修改:

git reset head filename 撤銷commit前暫存區的修改

4.3 刪除檔案

git rm -r filename 執行該命令相當於手動刪除檔案後執行add操作

4.4 版本回退

git reset --hard commit_id

檢視commit_id的命令:

git log head表示當前版本

git log --pretty=oneline 簡單顯示

q 退出git log 顯示的提交列表

head^ 上乙個版本

head^^ 上上乙個版本

head~100 上100個版本.

4.5 合併**

git merge branchname 將branchname分支合併到當前分支。有衝突需要手動解決衝突方能合併成功。

git remote update origin -p 更新遠端分支列表.

git checkout -b branchname origin/originbranchname 新建本地分支並跟蹤遠端分支

git branch -vv 檢視當前分支的詳情,包括當前分支所跟蹤的遠端分支,領先的提交等。

git push 將本地分支推送到遠端

git push origin head:orginbranchname 將本地分支推送到遠端的新分支。originbranchname並不需要帶"origin/"字首.

git push origin head:dev-lyl-gitshare

注意,推送到遠端新分支後,git並不會自動將本地分支所跟蹤的分支修改為剛才新建的遠端分支,通過.git/config 檔案可以看出此點

切換分支:

git branch -b branchname 表示建立分支並切換到新建立的分支。等效於如下兩條命令:

git branch branchname ;

git checkout branchname;

刪除分支:

git branch -d branchname 刪除本地分支

git push origin --delete orginbranchname 刪除遠端分支,注意,這裡的originbranchname 並不需要帶「origin/」字首

6.1 命令:

git config user.name 檢視當前使用者名稱

git config user.email 檢視當前郵箱

git config --global user.name 「username」 修改全域性使用者名稱

git config --global user.email 「useremail」 修改全域性郵箱

ssh-keygen -t rsa -c 「useremail」 生成ssh公/私鑰對

6.2 設定ssh金鑰步驟:

ssh-keygen -t rsa -c 「email」 --預設在c;\users\username.ss**件夾下。

生成後,用文字編輯器開啟**.pub檔案,copy文字內容,貼上到gitlab/github對應的地方

6.3 多賬戶:

生成ssh key時,不同的郵箱指定不同的檔名。

git常用命令介紹

記錄下平時工作中所用到的git指令,以便以後進行查詢。1 git init 該命令可以建立乙個新的所要管理的git倉庫。2 git add 所改動的檔案 該命令可以將所改動的檔案新增到暫存區中,以便稍後進行提交。3 git add u 該命令可以將所有修改或者刪除的檔案新增到暫存區中,以便稍後進行提...

git 常用命令介紹

建立分支 git branch mybranch 切換分支 git checkout mybranch 建立並切換分支 git checkout b mybranch 更新master主線上的東西到該分支上 git rebase master 切換到master分支 git checkout mas...

git 常用命令介紹

1.開啟目標空檔案 右鍵開啟 git bash here 命令 或者終端 開啟git終端輸入 提示說明 提示說明 提示說明 git push 失敗提示 原因 通過檢視提示資訊,我發現,是因為本地倉庫和遠端倉庫的檔案不一致所致,也就是說,github允許你本地倉庫有的東西,遠端倉庫裡沒有,但不允許遠端...