git常用命令2
Git:
學習git的網站:
設置個人環境:
git config :
配置文件位置:~/.gitconfig
配置用戶名:
$ git config --global user.name "os-tanwn"
配置用戶郵箱:
$ git config --global user.email os-tanwn@nowada.com
配置編輯工具:
$ git config --global core.editor vim
配置顏色:
git config --global color.diff auto
git config --global color.status auto
git config --global color.branch auto
用git開始管理一個工程:
初始化一個git倉:
git init
把特定文件不納入版本庫管理:
Git過濾文件和文夾
第一步:添加".gitignore"文件
往項目根目錄添加一個文件".gitignore"。這文件和".git"文件夾同級。
第二步:設置過濾條件
*.a # 忽略所有 .a 結尾的文件
!lib.a # 但 lib.a 除外
/TODO # 僅僅忽略項目根目錄下的 TODO 文件,不包括 subdir/TODO
build/ # 忽略 build/ 目錄下的所有文件
doc/*.txt # 會忽略 doc/notes.txt 但不包括 doc/server/arch.txt *.o 過濾所有.o文件,這個最好不要使用.o,我們編譯是經常會產生這種文件。
或者從遠程服務器下載一個git工程:
git clone
或者從遠程服務器下載一個git 分支工程:
git checkout -b <分支>
把文件納入git版本庫的暫存區:
git add:
git add –u <path> 把<path>中所有tracked文件中被修改過或已刪除文件的信息添加到索引庫。它不會處理untracted的文件
git add –A <path> 把<path>中所有tracked文件中被修改過或已刪除文件的信息添加到索引庫, 包括untracted的文件
git rm
要從 Git 中移除某個文件,就必須要從已跟蹤文件清單中移除(確切地說,是從暫存區域移除),然后提交??梢杂?git rm 命令完成此項工作,并連帶從工作目錄中刪除指定的文件,這樣以后就不會出現在未跟蹤文件清單中了
git mv
重命名文件 git mv old_name new_name
把文件從git暫存區移出來:
git reset HEAD <path>
git reset –hard <歷史指紋> 回滾到改歷史指紋,同時會把git里面所有改動都被覆蓋掉
git reset –soft <歷史指紋> 相當于把之前的commit撤回到暫存區
git format-patch HEAD^ 生成一個補丁
git format-patch HEAD^^ 生成兩個補丁(最多支持四個^)
git format-patch -<正整數i> 生成最近commit的i個補丁
git format-patch –n 指紋 生成從指紋之前的n個補丁
git am <patch> 打上一個補丁
git am –abort 取消打補丁(一般是打補丁出錯后執行的)
git am –resolved 解決了打補丁的沖突
git apply <patch> 直接應用修改
git apply –reject 應用修改,如果沒打上,則生成差異的文件
git revert 撤銷某次操作,此次操作之前和之后的commit和history都會保留,并且把這次撤銷
作為一次最新的提交
git commit 把暫存區的倉庫提交到版本管理庫里面
git commit –amend 對上一次的提交做修改
git branch 不帶參數:列出本地已經存在的分支,并且在當前分支的前面加“*”號標記,
git branch -r 列出遠程分支
git branch -a 列出本地分支和遠程分支
git branch 創建一個新的本地分支,需要注意,此處只是創建分支,不進行分支切換
git branch -m | -M oldbranch newbranch 重命名分支,如果newbranch名字分支已經存在,則需要使用-M強制重命名,否則,使用-m進行重命名
git branch -d | -D branchname 刪除branchname分支
git branch -d -r branchname 刪除遠程branchname分支
git log --pretty=oneline 類似于tig
git log --author=os-tanwn --since="14 days ago" --pretty=oneline 找這14以來作者是os-tanwn做的補丁,并且以簡列形式顯示
git log --committer=os-tanwn 提交者是os-tanwn的(提交者和作者意思是author是補丁的制作者,而committer是提交者,比如說我有提交遠程服務器補丁的權限,但其他人沒有,所有其他的補丁是通過我提交的,我就是committer,但author是其他人)
git log –stat顯示被修改文件的修改統計信息,添加或刪除了多少行
git log --grep=“gt9xx.c ” --pretty=oneline 找有gt9xx.c的補丁
git diff
git diff <1> <2> -- <file> 比較指定兩個指紋間某個文件的差別
git checkout 切換到分支或者把當前文件還原回版本庫的文件
git checkout branch – filename 維持HEAD的指向不變。用branch所指向的提交中filename替換暫存區和工作區中相 應的文件。注意會將暫存區和工作區中的filename文件直接覆蓋
git reflog 查看最近的版本,通過找到id號后可以通過git reset –HARD <id>回到被reset的版本
服務器同步和提交到服務器
git pull
git push
遠程服務器log:
git remote update //同步遠程版本的信息,但不會把更新內容放到工程里面,只改變了倉庫
git log origin/$(分支名) //可以查看服務器的最新更新記錄
總結
- 上一篇: Robot Framework - Va
- 下一篇: React Native微信支付开发爬坑