git使用命令
git使用命令
1.基本使用
-
git init倉庫初始化
-
git add <file>添加文件到倉庫
-
git add .將所有修改過的文件
-
git add -u將所有修改或已刪除的tracked文件添加到暫存區
-
git add -A將所有文件的修改和刪除文件添加的暫存區
-
git rm <file>從版本庫中刪除文件
-
git rm <file> --cached從版本庫中刪除,但不刪除本地文件
-
git checkout -- <file>取消工作區文件的修改
-
git checkout -- .取消所有工作區文件的修改
命令git checkout -- readme.txt意思就是,把readme.txt文件在工作區的修改全部撤銷,這里有兩種情況:
一種是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查看命令日志,可以用來確定要回到未來哪個版本
2.分支操作
-
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>強制刪除分支
3.遠程倉庫操作
-
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刪除遠程倉庫
4.遠程分支
-
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這會將所有的本地分支列出來并且包含更多的信息,如每一個分支正在跟蹤哪個遠程分支與本地分支是否是領先、落后或是都有