基本操作
git config -l 查看git配置
git config --global core.excludesfile ~/.gitignore 配置全局的 定義Git全局的 .gitignore 文件
git config --global http.postBuffer 524288000 配置文件大小限制 500M
git ls-files 查看本地緩存(就是commit之后存在本地的文件)
git rm -r --cached . 刪除本地緩存 --cached + (文件路徑)
git commit --amend -CHEAD (使用完--cached就用 commit --amend -CHEAD 配合使用)
git commit --amend amend具有修改最后一次commit提交的功能
git init 初始化本地庫
git status 查看工作區(qū)、暫存區(qū)的狀態(tài)
git add <file name> 將工作區(qū)的“新建/修改”添加到暫存區(qū)
git rm --cached <file name> 移除暫存區(qū)的修改
git commit <file name> 將暫存區(qū)的內(nèi)容提交到本地庫
git commit -m "提交日志" <file name> 文件從暫存區(qū)到本地庫
打tag(發(fā)布版本)
git tag -m "tag 描述" "tag版本號" 打上標簽,這個很重要
git push --tags 推送tag到遠端倉庫
遠端交互
git clone <遠程庫地址> 克隆遠程庫
git remote -v 查看遠程庫地址別名
git remote add <別名> <遠程庫地址> 新建遠程庫地址別名
git remote rm <別名> 刪除本地中遠程庫別名
git push <別名> <分支名> 本地庫某個分支推送到遠程庫,分支必須指定
git pull <別名> <分支名> 把遠程庫的修改拉取到本地(該命令包括git fetch,git merge)
git log:查看歷史提交(空格向下翻頁,b向上翻頁,q退出)
git log --pretty=oneline:以漂亮的一行顯示,包含全部哈希索引值
git log --oneline:以簡潔的一行顯示,包含簡潔哈希索引值
git reflog:以簡潔的一行顯示,包含簡潔哈希索引值,同時顯示移動到某個歷史版本所需的步數(shù)
分支操作
git branch -l 查看本地分支
git branch -r 查看遠端分支
git branch -a 查看全部分支(本地和遠端)
git branch -v 查看所有分支
git branch -d <分支名> 刪除本地分支
git branch -r -d origin/<分支名> 刪除遠程分支
git push origin <分支名> 刪除遠程分支
git branch <分支名> 新建分支
git checkout <分支名> 切換分支
git merge <被合并分支名> 合并分支
版本控制
git reset --hard 簡潔/完整哈希索引值:回到指定哈希值所對應(yīng)的版本
git reset --hard HEAD:強制工作區(qū)、暫存區(qū)、本地庫為當前HEAD指針所在的版本
git reset --hard HEAD^:后退一個版本(一個^表示回退一個版本)
git reset --hard HEAD~1:后退一個版本(波浪線~后面的數(shù)字表示后退幾個版本)
比較差異
git diff:比較工作區(qū)和暫存區(qū)的所有文件差異
git diff <file name>:比較工作區(qū)和暫存區(qū)的指定文件的差異
git diff HEAD|HEAD^|HEAD~|哈希索引值 <file name>:比較工作區(qū)跟本地庫的某個版本的指定文件的差異
實際操作
遷移(示例)
- 1.從原地址克隆一份裸版本庫,比如原本托管于 GitHub。
git clone --bare git://github.com/username/project.git
2.然后到新的 Git 服務(wù)器上創(chuàng)建一個新項目,比如 GitCafe。
3.以鏡像推送的方式上傳代碼到 GitCafe 服務(wù)器上。
cd project.git
git push --mirror git@gitcafe.com/username/newproject.git
- 4.刪除本地代碼
cd ..
rm -rf project.git
- 5.到新服務(wù)器 GitCafe 上找到 Clone 地址,直接 Clone 到本地就可以了。
git clone git@gitcafe.com/username/newproject.git
- 6.顯示本地 tag
git tag
Remote_Systems_Operation
- 7.刪除本地tag
git tag -d Remote_Systems_Operation
- 8.用push, 刪除遠程tag
git push origin :refs/tags/Remote_Systems_Operation
git stash(暫存命令-很實用)
git stash 可用來暫存當前正在進行的工作, 比如想pull 最新代碼, 又不想加新commit, 或者另外一種情況,為了fix 一個緊急的bug, 先stash, 使返回到自己上一個commit, 改完bug之后再stash pop, 繼續(xù)原來的工作。
基礎(chǔ)命令:
git stash 存儲當前未提交的文件
git stash list 列出當前git的所有暫存清單
git show stash@{0} 指定回到0的暫存文件
git stash pop 回歸到最后一個暫存清單并且刪除該暫存清單
git stash clear 清空暫存清單
git stash --help 查看更多信息