補充
安裝配置
$ git config --global user.name "your name"
$ git config --global user.email "[email protected]"
//非必要配置 (可檢視上面的學習位址)
git config --global color.ui true
//讓git顯示顏色,會讓命令輸出看起來更醒目:
忽略特殊檔案
配置別名 ..
.
git init //建立git版本庫
git add
//新增到暫存區
git add * 新增所有(不包括.gitignore 配置的忽略內容)
git rm
//刪除檔案
git commit -m
"描述"
//提交到版本庫
git status //狀態檢視
git diff //檢視修改內容
git log
//提交歷史
git log
--pretty=oneline
git log
--graph //檢視分支合併圖
git reflog //命令歷史
git reset --hard head^ //版本回退 上一版本 前多少版本 head~數字
git reset --hard 3628164
//根據commitid進行版本回退
git checkout --
//丟棄工作區的修改(實是用版本庫里的版本替換工作區的版本)
git reset head
//丟棄暫存區的修改
git tag
//用於新建乙個標籤,預設為head,也可以指定乙個commit id;
git tag
-a-m"blablabla..."
//可以指定標籤資訊;
git tag
-s-m"blablabla..."
//可以用pgp簽名標籤;
git tag
//可以檢視所有標籤。
git push origin
//可以推送乙個本地標籤;
git push origin --tags//可以推送全部未推送過的本地標籤;
git tag
-d//可以刪除乙個本地標籤;
git push origin :refs/tags/
//可以刪除乙個遠端標籤。
git show
//檢視標籤資訊
git checkout tag/commitid //版本回退
ssh-keygen
-t rsa -c
//生成ssh key
ssh -t [email protected] //測試是否能夠連線
git remote add origin [email protected]:michaelliao/learngit.git //建立本地和遠端庫關聯 遠端庫的名字就是origin,這是git預設的叫法
git push origin 《分支名稱》
//推送到遠端 第一次要 加 -u 建立分支關聯
git clone [email protected]:michaelliao/gitskills.git //轉殖 預設是master
git clone -b
《指定分支名稱》 [email protected]:michaelliao/gitskills.git //轉殖指定分支
git pull //從遠端抓取最新的提交
git remote -v
//檢視遠端庫資訊
git remote remove origin 解除和遠端庫關聯
.gitginore 也要同步上傳的遠端庫
/.idea/
*.iml
/target/
如果你是乙個人開發,可能只需要 master、develop 兩個分支就 ok 了,平時開發在 develop 分支進行,開發完成之後,發布之前合併到 master 分支
git branch //檢視分支
git branch
//建立分支
git checkout
//切換分支
git checkout -b
//建立+切換分支
git merge
//合併某分支到當前分支
//加上--no-ff引數就可以用普通模式合併,合併後的歷史有分支,能看出來曾經做過合併,而fast forward合併就看不出來曾經做過合併
git branch -d
//刪除分支
git branch -d
//丟棄乙個沒有被合併過的分支
git stash
git stash pop //回到工作現場
git stash list
git checkout -b branch-name origin/branch-name
//在本地建立和遠端分支對應的分支
git branch --
set-upstream branch-name origin/branch-name
//建立本地分支和遠端分支的關聯
git checkout
//切換分支
git checkout -b
//建立+切換分支
git checkout -b branch-name origin/branch-name
//在本地建立和遠端分支對應的分支
切換tag,切換到某次commit
git checkout tag/commitid //版本回退
git checkout -- //丟棄工作區的修改(實是用版本庫里的版本替換工作區的版本)
一. reset的hard,soft,mixed引數區別
git reset :和git add命令作用相反,撤銷add操作,把index區內容撤銷到working directory
git reset的–hard –mixed –soft引數區別:
hard:把working directory和index區的內容都重置為指定的commit 版本
soft:保留現在working directory和index區的內容,head指向制定的commit 版本
mixed:保留working區的內容,將index區和head內容都修恢復到指定的commit版本
二. reset和revert區別
reset是回朔到指定的commit版本(指定commit版本之後的操作都消失了)。revert是刪除指定的commit操作的內容(指定的版本內容消失,之前和之後commit版本內的操作都保留),但是這個操作也會做了乙個commit提交版本。
三: 如果本地的版本回退使用reset的話, push 到 遠端庫 需要加 -f 強制操作 (因為 遠端的commit 高於 本地)
四: pull 時候和本地衝突
error: your local changes to 『c/environ.c』 would be overwritten by merge. aborting.
please, commit your changes or stash them before you can merge.
這個意思是說更新下來的內容和本地修改的內容有衝突,先提交你的改變或者先將本地修改暫時儲存起來。
處理的方式非常簡單,主要是使用git stash命令進行處理,分成以下幾個步驟進行處理。
1、先將本地修改儲存起來 gi
tsta
sh這樣
本地的所
有修改就
都被暫時
儲存起來
。是用g
itst
ashl
ist可
以看到保
存的資訊
:git
stas
h暫存修
改其中s
tash
@0就是
剛才儲存
的標記。
2、pu
ll內容
暫存了本
地修改之
後,就可
以pul
l了。3
、還原暫
存的內容
git stash pop stash@
系統提示如下類似的資訊:
auto-merging c/environ.c
conflict (content): merge conflict in c/environ.c
意思就是系統自動合併修改的內容,但是其中有衝突,需要解決其中的衝突。
4、解決檔案中衝突的的部分
就可以正常的提交了。
五:強制pull
git fetch –allgit reset –hard origin/master
git pull
Git學習筆記
git stash git stash list 顯示git棧內的所有備份,可以利用這個列表來決定從那個地方恢復。git stash clear 清空git棧。此時使用gitg等圖形化工具會發現,原來stash的哪些節點都消失了。關於git stash的詳細解釋,適用場合,這裡做乙個說明 使用git...
git 學習筆記
1 git checkout master 切換分支 2 git checkout b xx 新建分支,同時切換到該分支 3 dev 4 git add a 將變動檔案,提交到index 5 git commit m 將 暫存區 檔案,加入到版本控制中。6 git checkout master 7...
Git 學習筆記
顯示版本庫.git所在的目錄 git rev parse git dir 顯示工作區的根目錄 git rev parse show toplevel 相對於工作區根目錄的相對目錄 git rev parse show prefix git config 命令各引數的區別 git config e 版...