git統稱為倉庫response。它分為工作區和.git區,工作區就是除開.git資料夾的當前資料夾。.git區又包含暫存區,head指標和分支資訊。
工作區和暫存區當存在修改內容時,是無法pull push merage等操作的。工作區和暫存區修改內容所有分割槽都能看見。只有把他們commit到某乙個分支後,其他分支才看不到。
命令:
git add
提交到暫存區
git add .不包括刪除檔案
git add -u 不提交新建檔案
git add -a git add -all上面2個命令的集合。
暫存區檔案所有分支都能看,但是提交暫存區只能提交到某乙個指定分支。
git commit
暫存區提交到當前分支
git commit -m '描述' 暫存區提交到當前分支
git status
檢視本地倉庫狀態(在工作區、暫存區有無檔案、解決衝突時檢視具體衝突檔名等):
git branch
分支資訊相關
git branch yss 建立分支
git branch -a
檢視所有分支包括遠端分支
git branch -vv
檢視本地分支和遠端分支的關聯資訊。
git branch --set-upstream-to=origin/dev設定本地分支和遠端分支的關聯:
解釋:當前分支關聯到遠端的dev分支。注意倉庫關聯是先建立好了的,分支關聯是後建立的。
git checkout
git checkout -b yss 建立分支並head指向該分支(切換到該分支)
git checkout -b dev origin/dev 建立分支並head指向該分支並關聯遠端分支
git checkout yss 切換分支
git checkout . 清除修改檔案(未add和commit的),該命令只能清除修改檔案,對於新增的檔案和資料夾清除需要執行
git clean
git clean -d清除新增檔案(未add和commit的)
git reset回滾
git reset .已經add了的用該命令重置。
git reset 《時間id> 已經commit了的,使用該方法回滾。可以通過git log --oneline --all –graph檢視回到指定時間線。
git pull
拉取:注意暫存區和工作區有修改內容,是無法pull的。
git push
推送:同樣暫存區和工作區有修改內容,是無法push的。
git merge
合併git merge dev 解釋:把dev分支merge到當前分支。
git remote
遠端倉庫
git remote -v檢視本地倉庫關聯的遠端倉庫位址
git log
檢視所有分支合併資訊
git log --oneline --all --graph
--oneline顯示單行 --all所有分支 --graph左側顯示時間線
常用命令:
git log --oneline --all –graph
git status
git checkout master
git merge dev 注意是當前分支被dev合併。
git的回滾以及撤銷
1、還未進行add和commit操作
git checkout .
該命令只能清除修改檔案,對於新增的檔案和資料夾清除需要執行
git clean -d
2、對於已經add了的
git reset .
已經add了的用該命令重置。
3、對於已經執行了commit命令的分支。
git reset 《時間id>
可以通過git log --oneline --all –graph檢視回到指定時間線。
規範操作:
1、關聯乙個本地分支和遠端分支做為pull和push用,如dev分支。
2、在本地新建乙個yss分支做為本地開發使用
操作步驟:
1、先把dev分支pull一次,保障本地最新。
2、建立個本地分支yss,切換到yss分支,並merge dev分支到yss,保證yss最新。
3、在yss分支上寫**。
4、寫完**後,把所有工作區修改內容commit到yss分支上。
5、切換到dev分支,從git伺服器重新pull一次最新**,注意一定要先pull一次,保證把伺服器**最新的pull到本地dev分支。
6、merge yss分支到dev分支上。
7、再把dev分支push到遠端dev分支上。
解決衝突:
步驟6很容易出現衝突,原因在於yss分支操作的時候,別人在伺服器上push了檔案,而檔案被dev分支pull下來後與yss的檔案有衝突。解決方法:
1。當執行了merge卻有衝突時,此時處於一種暫時分支狀態,在該狀態上使用git status檢視衝突檔案。如果是文字檔案,可以直接檢視衝突位置進行修復。
2.也可以退出暫時分支(退出命令在git status檢視時可以看到退出命令),把dev分支最新的衝突檔案覆蓋yss分支,當然這樣yss分支上的修改就被丟失了。然後重新提交合併等操作。
建立本地分支,並與遠端分支關聯
1、git init //初始化git
2、git remote add origin 3、git pull 拉取
4、git checkout master
注意當初始化乙個git本地倉庫的時候,由於並沒有commit過,所以head指標不會指向任何分支,檢視分支資訊的時候是不會顯示任何分支。
由於沒有本地檔案建立修改,此時執行git add . 和git commit -m也是無效的。
要使本地分支和遠端分支關聯,此時需要git pull遠端倉庫,再執行一次切換到master分支,就會自動關聯這個分支。
注意當本地先有相同名字的分支後,再執行git pull,再切換才會自動關聯上。所以先建立多個和遠端分支相同名字的分支,再pull再切換本地分支,就會都關聯上。
重新命名本地分支和遠端分支:
git branch -m oldbranchname newbanchname//重新命名本地分支
git push origin :oldbranchname//刪除對應遠端分支
git push origin newbranchname//本地重新命名分支提交到倉庫上
關於Git的常用操作記錄
看到user.name 和user.email 的配置 git config list 如果你沒有初始化過,那麼直接 git config global user.name 輸入你的使用者名稱 git config global user.email 輸入你的郵箱 如果初始化過,輸入 git con...
git常用操作
git是一款分布式的版本控制軟體,相比svn,功能更強大,自然而然操作更複雜一些。git在本地也是以git版本庫的形式管理,而svn在本地管理的僅是乙個版本庫的副本。很明顯的乙個不同點 git你可以在本地做一些修改,然後commit到本地的版本庫,最後push到伺服器,而svn只要一commit,更...
Git常用操作
有時候我們需要修改之前提交的時候的說明資訊,沒有操作命令可以直接完成,但是使用rebase命令可以實現。例如我們要修改倒數第二次的提交的說明資訊 git rebase i head 3 注意 這裡head 後面跟著的是3而不是2,因為這裡指的是要修改的提交的父提交。之後會進入到文字編輯介面,如下圖 ...