git的學習,有兩個很好的資源,乙個是廖雪峰的官網,這個真是淺顯易懂,另乙個是codecademy, 想深入學習的可以請移步過去,這裡僅對常用的命令進行總結。
git config --global user.name "此處填寫你的使用者名稱"
git config --global user.email "你的email"
#1. clone 乙個存在的倉庫:
git clone ssh:
#2.建立乙個本地倉庫, switch到目標資料夾下,輸入:
git init
#1. 新增所有當前的changes
git add .
#2.新增某乙個檔案
git add
#3. 新增某些檔案到下次commit
git add -p
#4. 提交改動到本地分支
git commit -m "comments"
#5. 提交所有的本地changes到本地分支, 省去了git add .
git commit -a
#6.在changeid不變得情況下,覆蓋上次修改的檔案**
git commit --amend
#1.顯示所有的提交記錄
git log
#2.顯示某乙個檔案的歷史記錄
git log -p
#3. 讓log好看點
git log
--pretty=oneline
#4.誰在何時改變了什麼內容
git blame
#5.可以檢視所有分支的所有操作記錄(包括提交、回退、已刪除的提交操作記錄等)
git reflog
如果在回退以後又想再次回到之前的版本,git reflog 可以檢視所有分支的所有操作記錄(包括commit和reset的操作),包括已經被刪除的commit記錄,git log則不能察看已經刪除了的commit記錄
#1
.列出所有存在的分支
git branch
#2.切換到某乙個分支
git checkout
#3.建立+切換分支
git checkout -b
#3.基於當前分支建立乙個新的分支
git branch <
new-branch
>
#4.基於遠端分支建立乙個分支
git branch --track <
new-branch
>
#5.刪除乙個本地分支
git branch -d
#6.給當前的提交打上tag
git tag
<
tag-name
>
#1.檢視遠端倉庫的資訊(執行該命令後,會列出當前程式對應的所有遠端版本倉庫的資訊,含倉庫名和倉庫位址)
git remote -v
git remote (只是會單純的列出所有遠端倉庫的名字,不會展示遠端倉庫的位址)
#2.顯示某個遠端庫的資訊
git remote show #3.建立新的遠端庫, name, remote
git pull
#5.push本地改動到remote
git push
#6.發布你的tags
git push --tags
#1.merge 合併branch分支到當前分支
git merge
舉例(把master分支合併到當前分支):
git checkout feature
git merge master
#2.rebase 把branch合併到當前分支
git rebase
舉例:git checkout feature
git rebase master
(它會把整個 feature 分支移動到 master 分支的後面,有效地把所有 master 分支上新的提交併入過來
但是,rebase 為原分支上每乙個提交建立乙個新的提交,重寫了專案歷史,並且不會帶來合併提交。)
#3.解決衝突後繼續合併
git rebase --continue
#4.中止rebase,回到rebase前狀態
git rebase --abort
#1.丟棄所有本地更改 ,commit和index 都回回退到某個版本.(注意,這種方式是改變本地**倉庫原始碼)
git reset --hard head
#2. 對某乙個檔案丟棄本地的更改
git checkouthead
#3.revert乙個commit (會留乙個新的commit記錄)
git revert #4.reset 到commit, commit後的所有提交都被丟棄
git reset --hard #5.reset到某個commit,同時保留所有本地的改動
git reset --keep
一、你有乙個遠端主branch,它名字是master, a和b都從master上checkout了本地分支,並建立了遠端分支。 a的本地分支和遠端分支都叫a, b的都叫b。a先改動了**並成功push到遠端a, 然後通過pull request成功merge到master, 這時候b也成功push**到b,然後建立pull request想push到master會出錯,怎麼解決?
(1)先push本地分支的改動到遠端b分支上。
(2)checkout -b c master 從最新的遠端主分支check out乙個本地分支, 我們叫c
(3)git pull 通過git pull 把遠端master最新改動拉下來到c
(4)git checkout b, 切換到本地分支b, git merge c,把c的最新**拉倒b,肯定有衝突,手工解決掉。
(5)b git push到遠端b, 並通過建立pull request的方式push到遠端master
二、提交注釋錯誤如何回退
git
commit--
amend
三、提交錯誤版本到本地倉庫如何回退
(2)找到上次提交的記錄id例如123, 執行 git reset --hard 123 或者 git reset --hard head^
四、自己的遠端分支版本回退的方法
git reflog
git reset --hard 123
git push -f (注意:本地分支回滾後,版本將落後遠端分支,必須使用強制推送覆蓋遠端分支,否則無法推送到遠端分支)
五、公共遠端分支版本回退的問題
舉例:改完**測試也沒有問題,但是上線後發現你的修改導致之前執行正常的**報錯,必須回滾.
git revert head
git push origin master
注意:git revert 命令意思是撤銷某次提交。它會產生乙個新的提交,雖然**回退了,但是版本依然是向前的,所以,當你用revert回退之後,所有人pull之後,他們的**也自動的回退了。
git revert 命令的好處就是不會丟掉別人的提交。
總結下:
自己的分支回滾直接用reset
公共分支回滾用revert
錯的太遠了直接將**全部刪掉,用正確**替代。
Git 用法總結
git 最基本使用方法 作為乙個git的基本使用者,從應用的角度對git的用法做個小結,這裡並不涉及git的工作原理,1.git repo branch的建立方法 1 直接從server段copy乙個repo到本地,作為開發的code base,這是最常見最基本的用法 git clone 2 在伺服...
Git用法總結
git 是乙個開源的分布式版本控制系統,用以敏捷 高效地處理專案版本管理。git配置 安裝git sudo apt get install git 配置使用者資訊 git config global user.name name 配置郵箱資訊 git config global user.email...
Git 用法總結,持續更新
從當前分支切換到本地已有目標分支git chekcout local branch從當前分支建立新本地分支並切換到此分支git checkout b new branch從branch name中檢出file name到當前分支git checkout branch name file name從c...