Git必須知道當(dāng)前版本是哪個版本,在Git中,用HEAD表示當(dāng)前版本,,上一個版本就是HEAD,上上一個版本就是HEAD,當(dāng)然往上100個版本寫100個比較容易數(shù)不過來,所以寫成HEAD~100。
現(xiàn)在,我們要把當(dāng)前版本A ,回退到上一個版本“B”,就可以使用git reset命令:
` git reset --hard HEAD^`
HEAD is now at ea34578 B
也可以查詢版本 :git log pretty =oneline
顯示出 所有 提交 版本記錄,選擇 id
執(zhí)行 git rest --hard id即可。
HEAD指向的版本就是當(dāng)前版本,因此,Git允許我們在版本的歷史之間穿梭,使用命令git reset --hard commit_id。
穿梭前,用git log可以查看提交歷史,以便確定要回退到哪個版本。
要重返未來,用git reflog查看命令歷史,以便確定要回到未來的哪個版本。
git clean -fd
git clean -xdf
用于刪除本地未提交到trunk的文件
git push origin --delete <BranchName>刪除遠(yuǎn)程分支
git branch -r查看遠(yuǎn)程分支
分支拉取master分支的代碼
git checkout master
git pull
git checkout Usage-Report
git merge master
git push
遠(yuǎn)程倉庫相關(guān)命令
檢出倉庫:git clone git://github.com/jquery/jquery.git
查看遠(yuǎn)程倉庫:git remote -v
添加遠(yuǎn)程倉庫: git remote add [name] [url]
刪除遠(yuǎn)程倉庫:git remote rm [name]
修改遠(yuǎn)程倉庫:git remote set-url -- push [name][newUrl]
拉取遠(yuǎn)程倉庫:git pull [remoteName] [localBranchName]
推送遠(yuǎn)程倉庫:git push [remoteName] [localBranchName]
分支(branch)操作相關(guān)命令
查看遠(yuǎn)程分支git branch -r
查看遠(yuǎn)程和本地的所有分支git branch -a
查看本地分支和當(dāng)前分支 帶*的為當(dāng)前分支git branch
創(chuàng)建本地分支git branch branchName 注意新分支創(chuàng)建后不會自動切換為當(dāng)前分支
切換分支 git checkout branchName
創(chuàng)建新分支并立即切換到新分支git checkout -b branchName
刪除本地分支 git branch -d /-D branchName
刪除遠(yuǎn)程分支git push origin --delete BranchName
創(chuàng)建遠(yuǎn)程分支(本地分支push到遠(yuǎn)程)git push origin branchName
git push origin test:master // 提交本地test分支作為遠(yuǎn)程的master分支 //好像只寫這一句,遠(yuǎn)程的github就會自動創(chuàng)建一個test分支
git push origin test:test // 提交本地test分支作為遠(yuǎn)程的test分支
如果想刪除遠(yuǎn)程的分支呢?類似于上面,如果:左邊的分支為空,那么將刪除:右邊的遠(yuǎn)程的分支。
git push origin :test // 剛提交到遠(yuǎn)程的test將被刪除,但是本地還會保存的,不用擔(dān)心
git checkout -b 本地分支名 origin/遠(yuǎn)程分支名 拉取遠(yuǎn)程分支到本地某個分支上
git fetch origin master:tmp
//在本地新建一個temp分支,并將遠(yuǎn)程origin倉庫的master分支代碼下載到本地temp分支
git diff tmp
//來比較本地代碼與剛剛從遠(yuǎn)程下載下來的代碼的區(qū)別
git merge tmp
//合并temp分支到本地的master分支
git branch -d temp
//如果不想保留temp分支 可以用這步刪除
查看當(dāng)前詳細(xì)分支信息(可看到當(dāng)前分支與對應(yīng)的遠(yuǎn)程追蹤分支):
git branch -vv
查看當(dāng)前遠(yuǎn)程倉庫信息
git remote -vv
git pull相當(dāng)于git fetch 和merge的結(jié)合
版本(tag)操作相關(guān)命令
查看版本:git tag
創(chuàng)建版本:git tag [name]
刪除版本:git tag -d [name]
查看遠(yuǎn)程版本:git ls-remote --tags origin
創(chuàng)建遠(yuǎn)程版本(本地版本push到遠(yuǎn)程):git push origin [name]
刪除遠(yuǎn)程版本:git push origin :refs/tags/[name]
若存在很多未推送的本地標(biāo)簽,你想一次全部推送的話,可以使用一下的命令:
git push origin --tags
子模塊(submodule)相關(guān)操作命令
添加子模塊:git submodule add [url] [path]
如:$ git submodule add git://github.com/soberh/ui-libs.git src/main/webapp/ui-libs
初始化子模塊:git submodule init----只在首次檢出倉庫時運行一次就行
更新子模塊:git submodule update----每次更新或切換分支后都需要運行一下
刪除子模塊:(分4步走哦)
1)git rm --cached [path]
- 編輯“.gitmodules”文件,將子模塊的相關(guān)配置節(jié)點刪除掉
- 編輯“.git/config”文件,將子模塊的相關(guān)配置節(jié)點刪除掉
- 手動刪除子模塊殘留的目錄
忽略一些文件、文件夾不提交
在倉庫根目錄下創(chuàng)建名稱為“.gitignore”的文件,寫入不需要的文件夾名或文件,每個元素占一行即可,如
target
bin
*.db