Git學習

#Git學習 ##1.Git基本命令 git branch 查看本地分支git

git branch -r查看遠程分支學習

git checkout -b backend_1_39_0_base 建立本地分支指針

git branch —set-upstream-to=origin/backend_1_39_0_base 與遠程分支創建聯繫對象

git status 獲取本地分支狀態it

git pull 拉取遠程倉庫ast

git add . 提交到暫存區stream

git commit -m "lalalal"提交到本地倉庫object

git push 提交到遠程倉庫file

git reset --hard commit_id 轉換到某次commit方法

git log 能夠查看提交歷史,以便肯定要回退到哪一個版本

git reflog 查看命令歷史,以便肯定要回到將來的哪一個版本

git diff #是工做區(work dict)和暫存區(stage)的比較

git diff --cached 是暫存區(stage)和分支(master)的比較

git checkout -- file 能夠丟棄工做區的修改(file是文件名)

命令git checkout -- readme.txt意思就是,把readme.txt文件在工做區的修改所有撤銷,這裏有兩種狀況:

一種是readme.txt自修改後尚未被放到暫存區,如今,撤銷修改就回到和版本庫如出一轍的狀態;

一種是readme.txt已經添加到暫存區後,又做了修改,如今,撤銷修改就回到添加到暫存區後的狀態。

總之,就是讓這個文件回到最近一次git commit或git add時的狀態。

git checkout <name> 切換分支

git merge <name> 合併某分支到當前分支

##2.Git對象模型 每一個對象(object) 包括三個部分:類型,大小和內容。大小就是指內容的大小,內容取決於對象的類型,有四種類型的對象:"blob"、"tree"、 "commit" 和"tag"。

  • 「blob」用來存儲文件數據,一般是一個文件。
  • 「tree」有點像一個目錄,它管理一些「tree」或是 「blob」(就像文件和子目錄)
  • 一個「commit」只指向一個"tree",它用來標記項目某一個特定時間點的狀態。它包括一些關於時間點的元數據,如時間戳、最近一次提交的做者、指向上次提交(commits)的指針等等。
  • 一個「tag」是來標記某一個提交(commit) 的方法。

每一個目錄都建立了 tree對象 (包括根目錄), 每一個文件都建立了一個對應的 blob對象 . 最後有一個 commit對象 來指向根tree對象(root of trees), 這樣咱們就能夠追蹤項目每一項提交內容

##3.工做區和暫存區

工做區:電腦能看到的目錄

版本庫(Repository)

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

Git的版本庫裏存了不少東西,其中最重要的就是稱爲stage(或者叫index)的暫存區,還有Git爲咱們自動建立的第一個分支master,以及指向master的一個指針叫HEAD。

把文件往Git版本庫裏添加的時候,是分兩步執行的:

第一步是用git add把文件添加進去,實際上就是把文件修改添加到暫存區;

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

相關文章
相關標籤/搜索