git init
倉庫初始化git
git add <file>
添加文件到倉庫github
git add .
將全部修改過的文件服務器
git add -u
將全部修改或已刪除的tracked文件添加到暫存區fetch
git add -A
將全部文件的修改和刪除文件添加的暫存區日誌
git rm <file>
從版本庫中刪除文件code
git rm <file> --cached
從版本庫中刪除,但不刪除本地文件server
git checkout -- <file>
取消工做區文件的修改blog
git checkout -- .
取消全部工做區文件的修改rem
命令git checkout -- readme.txt意思就是,把readme.txt文件在工做區的修改所有撤銷,這裏有兩種狀況:it
一種是readme.txt自修改後尚未被放到暫存區,如今,撤銷修改就回到和版本庫如出一轍的狀態;
一種是readme.txt已經添加到暫存區後,又做了修改,如今,撤銷修改就回到添加到暫存區後的狀態。
git reset HEAD <file>
從暫存區恢復到工做文件
git reset
從暫存區恢復全部文件到工做區
git reset HEAD^
工做區不改變,可是暫存區會回退到上一次提交以前,引用也會回退一次。
git reset --hard HEAD^
完全撤銷最近的提交。引用回退到前一次,並且工做區和暫存區都會回退到上一次提交的狀態。自上一次以來的提交所有丟失。
git reset (--hard) commit_id
回退到某個版本,--hard參數表示是否保留工做區的修改
場景1:當你改亂了工做區某個文件的內容,想直接丟棄工做區的修改時,用命令git checkout -- file。
場景2:當你不但改亂了工做區某個文件的內容,還添加到了暫存區時,想丟棄修改,分兩步,第一步用命令git reset HEAD file,就回到了場景1,第二步按場景1操做。
場景3:已經提交了不合適的修改到版本庫時,想要撤銷本次提交,參考版本回退一節,不過前提是沒有推送到遠程庫。
git commit -m "what are you doing?"
文件提交
git log --pretty=oneline --graph
顯示提交日誌
--pretty=oneline 日誌一行簡要顯示
--graph 圖形化顯示日誌
git reflog
查看命令日誌,能夠用來肯定要回到將來哪一個版本
git branch
git checkout -b <name>
git checkout <name>
git merge <name>
git merge --no-ff -m "instructions" <name>
合併分支到當前
--no-ff 保留分支信息
git branch -d <name>
刪除分支
git branch -D <name>
強制刪除分支
git remote add origin git@github.com:luna825/learngit.git
關聯一個遠程庫
git push -u origin master
第一次
git clone https://github.com/luna825/lunablog.git
克隆一個遠程倉庫
git remote -v
顯示遠程倉庫
-v會顯示須要讀寫遠程倉庫使用的 Git 保存的簡寫與其對應的 URL
git fetch origin
獲取遠程倉庫中有,但你沒有的信息
git push origin master
推送到遠程倉庫
git remote show origin
查看遠程倉庫
git pull
會從最初克隆的服務器上抓取數據並自動嘗試合併到當前所在的分支。
git remote rename pb paul
修改遠程倉庫的名字
git remote rm paul
刪除遠程倉庫
git push origin serverfix
推送分支
這裏有些工做被簡化了。 Git 自動將 serverfix 分支名字展開爲 refs/heads/serverfix:refs/heads/serverfix,那意味着,「推送本地的 serverfix 分支來更新遠程倉庫上的 serverfix 分支。
你也能夠運行 git push origin serverfix:serverfix,它會作一樣的事 - 至關於它說,「推送本地的 serverfix 分支,將其做爲遠程倉庫的 serverfix 分支」 能夠經過這種格式來推送本地分支到一個命名不相同的遠程分支。 若是並不想讓遠程倉庫上的分支叫作 serverfix,能夠運行 git push origin serverfix:awesomebranch 來將本地的 serverfix 分支推送到遠程倉庫上的 awesomebranch 分支。
git merge origin/serverfix
遠程分支合併到當前分支.最好使用本命令來合併分支,由於git pull
會合並全部跟蹤的分支
git checkout -b serverfix origin/serverfix
新建本地分支並將遠程分支clone下來(創建了track)
git checkout --track origin/serverfix
簡寫
git branch -u origin/serverfix
設置已有的本地分支跟蹤一個剛剛拉取下來的遠程分支
git branch -vv
這會將全部的本地分支列出來而且包含更多的信息,如每個分支正在跟蹤哪一個遠程分支與本地分支是不是領先、落後或是都有