自動幫助記錄每次檔案的改動,同時協作永工作
分布式每個人電腦都是乙個完整的版本庫,也有類似**伺服器的電腦,但是這個伺服器只是用來互動打架的修改沒有它大家也一樣幹活,只是互動修改不方便而已。
安裝只要安裝了xcode就可以了
mkdir 建立目錄
cd 進入到目錄裡面
pwd 用於顯示當前的目錄
cat 檢視檔案內容
初始化乙個目錄成git的倉庫(版本庫)包括暫存區和master分支
git init(檢視當前目錄的檔案包含隱藏檔案)
ls -ah (獲取git命令手冊頁)
git help (使用git前需要進行一些全域性的配置)
> 使用者目錄下的配置,當前登陸使用者所有的倉庫呼叫這個配置 ~/.gitconfig
> 專案目錄的配置,優先順序高,覆蓋全域性配置。
配置使用者名稱和郵箱
git config --global user.name "wirelessqa"
git config --global user.email [email protected]
git config --global color.ui true (讓git顯示顏色,回讓命令輸出看起來更醒目)
.gitignore 配置不納入git管理主要是系統檔案、編譯檔案、自定義檔案(這個檔案也用推送到遠端庫)
建立touch命令
git config --global core.editor emacs
配置比較工具:
git config --global merge.tool vimdiff
配置讀取(同乙個配置選項會出現多次,以最後乙個為準):
git config --list
先檢視當前的狀態,能提示你接下來怎麼做的命令,比如修改工作區檔案內容,提示你新增到暫存區或丟棄工作區修改的命令:
git status
檢視檔案到底修改了什麼:
git diff
納入git倉庫管理,把修改新增到暫存區(使用.代表將所有的修改進行新增):
git add .
把暫存區裡面的所有修改提交到當前分支同時建立乙個快照:
git commit -m ""
如果確認當前所有變更都是同乙個commit,可以直接加-a,就不必乙個乙個add了:
git commit -a -m ""
工作區和版本庫里最新版本的區別:
git diff head -- readme.txt
檢視提交歷史:
git log --pretty=oneline
git checkout -- readme.txt
> 修改後還沒有新增到暫存區,撤銷修改回到最近一次commit的狀態,也就是和版本庫裡面的狀態一樣。
> 修改後被新增到暫存庫了,又做了修改,撤銷修改就到新增暫存區後的狀態,也就是跟暫存區裡面的狀態保持一致。
> 用版本庫里的版本替換工作去的版本,無論工作區是修改還是刪除
可以把暫存區的修改撤銷掉:
git reset head file
提交檔案刪除修改到暫存區:
git rm test.txt
git 的版本回退知識改了head指標,順便把工作區的檔案更新掉了:
git reset --hard head^ 或 git reset --hard 3628164
可以看到reset和commit等命令歷史,可以利用這個命令檢視最近一次commit:
git reflog
工作區:電腦上能看到的目錄,裡面有個git隱藏目錄這個不算工作區,是git的版本庫。
版本庫裡面包含暫存區stage和git為我們自動建立乙個分支。
檢視遠端資訊:
git remote -v
git remote set-url origin
git remote add origin [email protected]:linhcode/first-test.git
本地的master分支推送到遠端的master分支上,原則就是master分支要與遠端同步,dev分支開發分支,也需要遠端同步:
git push origin master
master分支推送到遠端的master分支,本地master分支和遠端master分支建立關聯:
git push -u origin master
git自動把本地的master分支和遠端master分支對應起來了,並且遠端倉庫的預設名稱是origin:
git clone [email protected]:linhcode/first-test.git
> git branch --set-upstream branch-name origin/branch-name 建立本地分支和遠端分支的關聯
> git pull origin branch-name
> 1、不完整的**在其它分支上提交。
> 2、每個提交都在乙個時間線上的節點上,分支相當於指向乙個節點的指標。
head本質上是指向分支指標:
建立並切換分支:
git checkout -b dev
本地分支建立和遠端分支相同的分支,主要是倉庫從遠端clone過來的(一般要線git fetch,在git checkout -b branch-name origin/branch-name):
git checkout -b branch-name origin/branch-name
建立分支:
git branch dev
切換分支,如果當前的工作只完成一半,還沒發提交的話:
git checkout dev
可以用git stash 儲存工作現場,在用它之前可以git stash lish 檢視有幾個暫存列表
檢視有幾個暫存列表:
git stash list
儲存工作現場:
git stach
恢復工作現場:
刪除工作現場:
git stash drop
檢視當前分支:
git branch
檢視遠端分支:
git branch -r
合併分支:
git merge dev
刪除分支:
git branch -d dev
強行刪除分支:
git branch -d dev
冒號前面的空格不能少,原理是乙個空分支push到server上,相當於刪除該分支
git push origin :bransh-name
提交本地test分支作為遠端的master分支
git push origin test:master
提交本地test分支作為遠端的test分支
git push origin test:test
剛提交到遠端的test將被刪除,但是本地還會儲存的,不用擔心
git push origin :test
檢視分支合併圖
git log --graph
檢視提交歷史
git log --pretty=oneline --abbrev-commit
合併分支
git merge branchname
合併分支的時候不採用ff模式(分支刪除了還能看的到分支歷史資訊)
git merge --no-ff -m "merged bug fix 101" issue-101
描述開發歷程,在發布乙個版本的時候打乙個標籤
檢視所有標籤
git tag
對某乙個提交歷史打乙個標籤
git tag v1.0 [commit id]
檢視標籤資訊
git show [tagname]
正式開發下最好用這條語句注下這個標籤的描述
git tag -a v0.1 -m "version 0.1 released" 3628164
刪除標籤
git tag -d v0.1
推送全部標籤
git push orgin --tags
遠端刪除標籤(先從本地刪除標籤)
git push origin :refs/tags/v0.9
Git簡單命令整理
1.開啟資料夾,右鍵git bash here 2.cd 路徑 1.cd 1.mkdir name 1.rm name.字尾 1.進入資料夾後輸入git init 1.單個檔案git add 檔名.檔案型別 2.全部提交git add 1.git commit m 修改注釋 1.git diff 檔...
git命令整理
git svn區別 svn是集中式版本控制系統,版本庫是集中放在 伺服器的,而幹活的時候,用的都是自己的電腦,所以首先要從 伺服器 得到最新的版本,然後幹活,幹完後,需要把自己做完的活推送到 伺服器。集中式版本控制系統是必須聯網才能工作,如果在區域網還可以,頻寬夠大,速度夠快 git是分布式版本控制...
Git命令整理
回退上一版本 git reset hard head head is now at ea34578 add distributed 檢視分支 git branch 建立分支 git branch 切換分支 git checkout 建立 切換分支 git checkout b 合併某分支到當前分支 ...