git 本地庫的操作

2021-07-25 22:29:06 字數 3397 閱讀 4940

一·建立git倉庫

4、一般使用場景是公司的伺服器使用git init -bare 建立乙個倉庫並add 、commit新增好工程後,開發人員本地使用git clone url (ex:git clone [email protected].***:/home/user/project/.git) 命令clone乙份工程。

下面總結開發人員本地的git 操作。

二·git的工作流

你的本地倉庫由 git 維護的三棵「樹」組成。

第乙個是你的 工作目錄,它持有實際檔案;

第二個是 暫存區(index),它像個快取區域,臨時儲存你的改動;

第三個是 head,它指向你最後一次提交的結果。(本地的版本庫)

最後開發人員需要將本地版本庫推到伺服器端。第一次提交**使用命令git push -u origin master可以關聯本地分支和遠端分支。如果沒有用-u,以後的pull拉更新的**時會報錯沒有關聯版本庫,這時需要使用git branch -set-upstream-to=origin/ master 命令關聯版本庫。

三·常用的一些命令

1.乙個正常的使用流程命令如下:

git stash

git pull

git stash pop

git add ***.c

git commit -m 「***」

git push -u origin master

git status

2.git log顯示提交資訊和版本id

git log –oneline 顯示簡短的版本庫log資訊。

3.git checkout命令:

git checkout file 從暫存區index中覆蓋檔案到工作區worktree。

git checkout  hash file 從版本庫中覆蓋檔案到暫存區index和工作區worktree中,可以為版本庫的hash值或分支。

git checkout 對工作區進行檢查,彙總顯示工作區、暫存區與head的差異(未被跟蹤的檔案,即工作區新加檔案,不顯示)。

總結1:檢出某個具體檔案的的時候,不會改變head頭指標,主要使用於指定版本的檔案覆蓋工作區中對應的檔案。如果省略,則會用暫存區的檔案覆蓋工作區中的檔案,否則用指定提交中的檔案覆蓋暫存區和工作區中的對應檔案。

2:不是檢出某個具體檔案的的時候,單純的檢出某個commit或分支,是會改變head頭指標的。而且只有當head切換到某個分支的時候才可以對提交進行跟蹤,否則就會進入「分離頭指標」的狀態 需要git checkout master。

4.git reset命令:

git reset head file 從版本庫覆蓋到index,若想把工作區恢復還需要再git checkout file

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

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

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

注:1:git reset –hard head^ ,其中head是指向最新的提交,上一次提交是head^,上上次是head^^,也可以寫成head~2 ,依次類推

2:–hard 表示放棄所有本地改動

5.git fetch

比較**

git diff temp

合併tmp分支到master分支

git merge tmp

刪除tmp分支

git branch -d tmp

如果該分支沒有合併到主分支會報錯,可以用以下命令強制刪除git branch -d < 分支名》

2,如果我想從遠端的源倉庫更新到本地的**倉庫,可以輸入「git fetch origin」的命令,該命令的輸入類似如下格式:

remote: counting objects: 382, done.

remote: compressing objects: 100% (203/203), done.

remote: total 278 (delta 177), reused 103 (delta 59)

receiving objects: 100% (278/278), 4.89 mib | 539 kib/s, done.

resolving deltas: 100% (177/177), completed with 40 local objects.

from ssh:

3036acc..9eb5e40 debian-release-20081030 -> origin/debian-release-20081030

* [new branch] debian-release-20081112 -> origin/debian-release-20081112

* [new branch] debian-release-20081112.1 -> origin/debian-release-20081112.1

3d619e7..6260626 master -> origin/master

最重要的是這兩行:

3036acc..9eb5e40 debian-release-20081030 -> origin/debian-release-20081030

* [new branch] debian-release-20081112 -> origin/debian-release-20081112

git merge origin/master

( 幾句題外話:合併的時候有可能你還沒有對遠端分支提交過任何的更改,或者可能是乙個複雜的合併。)

如果你只是想看看本地分支和遠端分支的差異,你可以使用下面的命令:

git diff master origin/master

四·非常用命令

1.撤消未跟蹤檔案 git clean -dxf

清除所有未跟蹤檔案,包括納入ignored的檔案。如果要保留ignored的檔案修改,使用引數-df

2.cat .git/head 一般指向當前分支名master

cat .git/refs/heads/master 指向當前**庫hash,即最近一次提交的id

3.git branch -vv(兩個v),就能夠看到本地分支跟蹤的遠端分支。

4.使用git config –list檢視配置設定

乙個簡要的介紹

一些簡單的git 操作

checkout命令的詳解

git撤銷的操作

Git 本地庫操作總結

本文只是對git命令的總結,方便以後查閱 詳細操作過程請看 廖雪峰git教程 建立版本庫 git init 將檔案放到暫存區 stage git add 提交到版本庫 git commit m 檢視當前狀態 git status 檢視當前工作區的修改與版本庫有什麼不同 git diff txt gi...

git本地庫 操作具體命令 !

在專案目錄建立新的本地倉庫,並把專案裡的所有檔案全部新增 提交到本地倉庫中去 git init 在當前的目錄下建立乙個新的空的本地倉庫 initialized empty git repository in home user test proj git git add 把前目錄下的所有檔案全部新增...

Git的本地操作

1.初始化git倉庫 有.git隱藏檔案 git init git non bare repo 其中git non bare repo為新建倉庫的名字2.建立乙個裸倉庫 沒有.git隱藏檔案 git init bare git bare repo3.在已有的工作環境納入git的管理 例如 mkdir...