git的使用和基本概念解析

2022-09-23 14:48:09 字數 3234 閱讀 4952

git學習

git init 建立版本庫

git add 檔名 將檔案新增到暫存區

git commit -m "備註資訊" 將檔案提交到本地倉庫

git status 用於檢視當前版本庫的狀態。

git log 用於檢視歷史記錄。可以加上--pretty=oneline 減少輸出資訊。只留下最主要的資訊。

git reset --hard head~數字 數字是幾就回退到前幾個版本,也可以將~數字 換為 ^ 有幾個^就代表回退幾個版本 當你想要再返回之前版本時需要使用git reflog 命令檢視對應把版本的commit id 再使用 git reset --hard 提交id 來回覆到之前版本

git diff head -- 檔名 檢視版本衝突

git checkout -- 檔名 可以丟棄整個工作區回到沒有修改之前的狀態,前提是沒有加入到暫存區 用版本庫里的版本替換工作區的版本

git reset head 檔名 回到加入暫存區之前的狀態 再使用git checkout -- 檔名 前提是還沒有提交到版本庫

git reset --hard head~數字 這種方法可以使檔案回到之前的版本 前提是還沒有推送到遠端

git rm 檔名 用來刪除檔案。 並且需要git commit -m " " 否則git不知道你刪除了檔案 但是刪除時需要小心,如果你刪除了這個檔案那麼 你只能恢復到最新版本,你會丟失最近一次提交後你修改的內容。

要關聯乙個遠端庫,使用命令git remote add origin git@server-name:path/repo-name.git;

關聯後,使用命令git push -u origin master第一次推送master分支的所有內容;

此後,每次本地提交後,只要有必要,就可以使用命令git push origin master推送最新修改;

git branch -b dev 建立並切換到dev分支。 相當於 git branch dev 和 git checkout dev 兩個命令,git branch 可以檢視當前分支。

git鼓勵大量使用分支:

檢視分支:git branch

建立分支:git branch

切換分支:git checkout

建立+切換分支:git checkout -b

合併某分支到當前分支:git merge

刪除分支:git branch -d

git log --graph 用來查案git分支圖

合併分支時,加上--no-ff引數就可以用普通模式合併,合併後的歷史有分支,能看出來曾經做過合併,而fast forward合併就看不出來曾經做過合併。 git merge --no-ff -m "merge with no-ff" dev

檢視合併歷史git merge --no-ff -m "merge with no-ff" dev

master 應該是最穩定的版本,也就是只能用來發布新版本,而不能在上面幹活,幹活都在dev分支上,也就是平時開發用的,每個人都可以有自己的分支,然後時不時的往dev上合併就可以了。

bug分支。當需要修復bug的時候先使用git stash儲存現場工作 然後建立bug分支 再講bug分支合併到別的分支上 此時切換回正在開發的自己分支,git stash list 檢視暫存 然後git stash pop 恢復工作現場。

future分支 開發乙個新feature,最好新建乙個分支;

如果要丟棄乙個沒有被合併過的分支,可以通過git branch -d 強行刪除。

git remote 顯示遠端庫資訊 git remote -v 顯示更詳細的遠端庫資訊

git push origin 用於提交本地倉庫到遠端

因此,多人協作的工作模式通常是這樣:

首先,可以試圖用git push origin 推送自己的修改;

如果推送失敗,則因為遠端分支比你的本地更新,需要先用git pull試圖合併;

如果合併有衝突,則解決衝突,並在本地提交;

沒有衝突或者解決掉衝突後,再用git push origin 推送就能成功!

如果git pull提示no tracking information,則說明本地分支和遠端分支的鏈結關係沒有建立,用命令git branch --set-upstream-to origin/。

這就是多人協作的工作模式,一旦熟悉了,就非常簡單。

小結檢視遠端庫資訊,使用git remote -v;

本地新建的分支如果不推送到遠端,對其他人就是不可見的;

從本地推送分支,使用git push origin branch-name,如果推送失敗,先用git pull抓取遠端的新提交;

在本地建立和遠端分支對應的分支,使用git checkout -b branch-name origin/branch-name,本地和遠端分支的名稱最好一致;

建立本地分支和遠端分支的關聯,使用git branch --set-upstream branch-name origin/branch-name;

從遠端抓取分支,使用git pull,如果有衝突,要先處理衝突。

git rebase 可以變基,rebase操作可以把本地未push的分叉提交歷史整理成直線 ,將雜亂的git歷史變成一條直線

命令git tag 用於新建乙個標籤,預設為head,也可以指定乙個commit id;

命令git tag -a -m "blablabla..."可以指定標籤資訊;

命令git tag可以檢視所有標籤。

命令git push origin 可以推送乙個本地標籤;

命令git push origin --tags可以推送全部未推送過的本地標籤;

命令git tag -d 可以刪除乙個本地標籤;

命令git push origin :refs/tags/可以刪除乙個遠端標籤。

點選github上的fork就可以在自己的賬號下轉殖乙個別人的倉庫了,然後再從自己的倉庫中**,這樣才能推送到遠端要不然沒有許可權無法推送

git設定忽略檔案如果是已經設定了忽略檔案的,檔案你想要強制給它新增到git中 你需要使用git add -f 來強制新增

或者你發現,可能是.gitignore寫得有問題,需要找出來到底哪個規則寫錯了,可以用git check-ignore命令檢查: git check-ignore -v

.gitignore 檔案需要放到版本庫中 並且可以對.gitignore檔案進行版本控制

還有設定別名和搭建git倉庫我就不想看了,鏈結上有說,累,而且在實際開發中我都是用idea中的git去日常操作,如果你們要是有什麼理解不清楚的給你們鏈結,有git教程。

GIT基本概念

工作區是個工作目錄,實質上就是我們的在開發過程中對其進行新增 編輯的源 包括標頭檔案 原始檔和配置檔案 在工作區中有乙個隱藏檔案 git 它不屬於工作區,而是git版本庫。該檔案下包括很多其他檔案,其中重要的是暫存區 git index 物件庫 git objects 分支 master分支和其他分...

git 基本概念

理解git首先要對它自己的主要概念理解清楚,這個我看了一邊後又重新梳理了一邊思路,提取了幾個自己很容易誤解和難區分的概念,在這裡詳細介紹下 工作區 就是你在電腦裡能看到的目錄,比如我的learngit資料夾就是乙個工作區。暫存區 工作區有乙個隱藏目錄.git,這個不算工作區,而是git的版本庫。gi...

git基本概念

為了便於管理,git要求每個遠端主機都必須指定乙個主機名。git remote命令就用於管理主機名。不帶選項的時候,git remote命令列出所有遠端主機。一旦遠端主機的版本庫有了更新 git術語叫做commit 需要將這些更新取回本地,這時就要用到git fetch命令。預設情況下,git fe...