git clone git@github.com:niniaibu/java.git
git status
查看修改或添加文件狀態(tài)
git diff
查看具體修改霜旧,:q 退出
git diff --cached
:只看添加的部分git add .
全部添加git commit -m "注釋"
git commit -am "注釋"
git push origin branch/master
推上遠程庫
git push -u origin master
第一次推送master分支時,加上了-u參數(shù),Git不但會把本地的master分支內(nèi)容推送的遠程新的master分支大磺,還會把本地的master分支和遠程的master分支關(guān)聯(lián)起來父阻,在以后的推送或者拉取時就可以簡化命令未桥。git checkout branch/master
換分支git pull origin master
拉最新的代碼
git pull --rebase
(建議使用栽渴,將兩個分支在一個分支上進行拼接,保持分支始終只存在一個)
pull=fetch + merge(需要解決與本地沖突囱持,且會存在兩個分支進行合并)git remote add origin git@github.com:niniaibu/Java_test.git
本地路徑下夯接,本地關(guān)聯(lián)遠程庫git check-ignore -v A.class
查看.gitignore
文件忽略跟蹤文件有三個地方加入.gitigore:
vi ~/.gitignore(家目錄創(chuàng)建)
定義Git全局的 .gitignore 文件。設(shè)置全局的git .gitignore文件來管理所有Git項目的行為纷妆。這種方式在不同的項目開發(fā)者之間是不共享的盔几,是屬于項目之上Git應用級別的行為。
vi ../.gitignore(項目目錄下創(chuàng)建)
在Git項目中定義.gitignore文件掩幢。.gitignore 文件是可以提交到公有倉庫中逊拍,這就為該項目下的所有開發(fā)者都共享一套定義好的忽略規(guī)則。在.gitingore 文件中际邻,遵循相應的語法芯丧,在每一行指定一個忽略規(guī)則。
vi ../.git/info/exclude(源代碼下面的git目錄的根目錄)
在Git項目的設(shè)置中指定排除文件世曾。臨時指定該項目的行為缨恒,需要編輯當前項目下的 .git/info/exclude文件,然后將需要忽略提交的文件寫入其中轮听。需要注意的是骗露,這種方式指定的忽略文件的根目錄是項目根目錄。
https://www.cnblogs.com/kevingrace/p/5690241.html
忽略文件原則:
1血巍、忽略操作系統(tǒng)自動生成的文件萧锉,比如縮略圖等;
2述寡、忽略編譯生成的中間文件驹暑、可執(zhí)行文件等玫恳,也就是如果一個文件是通過另一個文件自動生成的辨赐,那自動生成的文件就沒必要放進版本庫优俘,比如Java編譯產(chǎn)生的.class文件;
3掀序、忽略你自己的帶有敏感信息的配置文件帆焕,比如存放口令的配置文件。
git stash
:保留現(xiàn)場
git stash pop
:回到工作現(xiàn)場
git stash clear
:刪除保存的工作現(xiàn)場git reset
(版本撤回)
用法
git reset --mixed
回退commit,保留源碼,默認方式.
git reset --soft
回退至某個版本,只回退commit信息
git reset --hard
徹底回退至某個版本
示例
回退所有內(nèi)容到上一個版本git reset HEAD^
回退a.py這個文件的版本到上一個版本git reset HEAD^ a.py
向前回退到第3個版本git reset –soft HEAD~3
將本地的狀態(tài)回退到和遠程的一樣git reset –hard origin/master
回退到某個版本git reset 057d
回退到上一次提交的狀態(tài)不恭,按照某一次的commit完全反向的進行一次commit git revert HEAD
git revert
(撤消操作)
git revert撤銷某次操作叶雹,此次操作之前的commit都會被保留。 git reset 是撤銷某次提交换吧,但是此次之后的修改都會被退回到暫存區(qū)折晦。
示例
git revert HEAD~3
:丟棄最近的三個commit,把狀態(tài)恢復到最近的第四個commit沾瓦,并且提交一個新的commit來記錄這次改變满着。
git revert -n master~5..master~2
:丟棄從最近的第五個commit(包含)到第二個(不包含),但是不自動生成commit,這個revert僅僅修改working tree和index贯莺。