git命令使用

2021-07-08 10:54:41 字數 3573 閱讀 6571

切換到相應目錄下, git init 把這個目錄變成git可以管理的倉庫,目錄下多了乙個.git的目錄,這個目錄預設是隱藏的,用ls -ah命令就可以看見。

git status 檢視倉庫狀態。

git diff + file 檢視修改內容。

git add(後面解釋)

git commit -m ""(後面解釋)

commit可以一次提交很多檔案,所以你可以多次add不同的檔案

每提交乙個新版本,實際上git就會把它們自動串成一條時間線。

git log (--pretty=oneline)命令檢視commit歷史,可以看到每一次提交的版本號。

版本回退

首先,git必須知道當前版本是哪個版本,在git中,用head表示當前版本,也就是最新的提交

,上乙個版本就是head^,上上乙個版本就是head^^,當然往上100個版本寫100個^比較容易數不過來,所以寫成head~100

git reset --hard head^
reset命令有3種方式:

1:git reset –mixed:此為預設方式,不帶任何引數的git reset,即時這種方式,它回退到某個版本,只保留原始碼,回退commit和index資訊

2:git reset –soft:回退到某個版本,只回退了commit的資訊,不會恢復到index file一級。如果還要提交,直接commit即可

3:git reset –hard:徹底回退到某個版本,本地的原始碼也會變為上乙個版本的內容

在git中,總是有後悔藥可以吃的。當你用$ git reset --hard head^回退到

之前版本時,再想恢復到

原先版本

,就必須找到

原先版本的commit id。git提供了乙個命令

git reflog用來記錄你的每一次命令:

$ git

reflog

ea34578

head

@: reset: moving

tohead^

3628164 head

gplea34578

head

@: commit: add

distributed

cb926e7

head

@: commit (initial): wrote

areadme

file

工作區(working directory)

就是你在電腦裡能看到的目錄,比如專案資料夾就是乙個工作區。

版本庫(repository)

工作區有乙個隱藏目錄.git,這個不算工作區,而是git的版本庫。

git的版本庫里存了很多東西,其中最重要的就是稱為stage(或者叫index)的暫存區,還有git為我們自動建立的第乙個分支master,以及指向master的乙個指標叫head

前面講了我們把檔案往git版本庫里新增的時候,是分兩步執行的:

第一步是用git add把檔案新增進去,實際上就是把檔案修改新增到暫存區;

第二步是用git commit提交更改,實際上就是把暫存區的所有內容提交到當前分支。

因為我們建立git版本庫時,git自動為我們建立了唯一乙個master分支,所以,現在,git commit就是往master分支上提交更改。

git add命令實際上就是把要提交的所有修改放到暫存區(stage),然後,執行git commit就可以一次性把暫存區的所有修改提交到分支。

管理修改

git管理的是修改,而不是檔案。

git diff head -- file命令可以檢視工作區和版本庫裡面最新版本的區別。

撤銷修改 1. 改了**,還沒add。

那麼可以手動去刪,但是改太多不記得了,git checkout -- file可以丟棄工作區的修改。

git checkout -- file命令中的--很重要,沒有--,就變成了「切換到另乙個分支」的命令。

2. add了沒commit。

git reset命令既可以回退版本,也可以把暫存區的修改回退到工作區。當我們用head時,表示最新的版本。

git reset head file

3. commit了, 沒push。

那就是版本會退了。

刪除檔案(在本地刪了檔案)

1. 確實要刪除。用命令git rm刪掉,並且git commit。

2. 刪錯了。 git checkout其實是用版本庫里的版本替換工作區的版本,無論工作區是修改還是刪除,都可以「一鍵還原」。

關於分支

在版本回退

裡,你已經知道,每次提交,git都把它們串成一條時間線,這條時間線就是乙個分支。截止到目前,只有一條時間線,在git裡,這個分支叫主分支,即master分支。head嚴格來說不是指向提交,而是指向mastermaster才是指向提交的,所以,head指向的就是當前分支。

在新的dev分支工作。

合併dev的到master分支。

git checkout -b dev
git checkout命令加上-b引數表示建立並切換,相當於以下兩條命令:

$ git branch dev

$ git checkout dev

git branch命令檢視當前分支。

git merge命令用於合併指定分支到當前分支。

刪除分支:git branch -d 。

git pull 拉取**。

關於push到遠端庫,重開一篇記錄。

Git 命令使用

git clone recursive recursive 會遞迴轉殖fast rcnn專案下面的所有git專案 遠端操作的第一步,通常是從遠端主機轉殖乙個版本庫,這時就要用到git clone命令。git clone 版本庫的 比如,轉殖jquery的版本庫。git clone該命令會在本地主機生...

git命令使用

簡單常用命令 git clone url 專案位址 轉殖git上已有專案 提交 到git上一般有以下步驟 1.git pull 更新本地 2.git add 新增本地 3.git commit m 提交你的 並加上注釋 4.git push u origin master 推送 到master分支 ...

git命令使用

剛從svn轉到git,差不多一月有餘 做個小總結 由於git圖形化介面在intelij idea上有些不方便 故改而以git的命令列方式為主 我的作業系統為windows git add 注意後面的點 使用場合,本地做了修改後,先git status 出現修改的列表,然後使用git add 新增 可...