本總結基於廖雪峯大神的Git教程,教程上對本總結的指令都有詳細的解釋,不懂的可以閱讀教程,附上地址:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
前言
git 的每次提交都是基於前一次提交的,也就是是分割式提交,不能刪除中間的某次提交的!
正文
git config --global user.name "Your Name"
git config --global user.email "[email protected]" 設置用戶名和郵箱git init 初始化倉庫
ls -ah 顯示當前目錄下的所有文件和文件夾,包括隱藏的
git add readme.txt 把readme.txt文件添加到倉庫
git add . 把當前目錄下的所有文件添加到倉庫
git commit -m "add" 把添加了的文件提交到倉庫 “add”是本次提交的說明
git log 顯示從最近到最遠的提交日誌
git log --pretty=oneline 精簡版git log
git reset --hard HEAD^ 把當前版本回退到上一個版本
git reset --hard HEAD^^ 把當前版本回退到上上一個版本
git reset --hard HEAD~100 把當前版本回退到往上100個版本
git reset --hard 3628164 把當前版本回退到3628164(某個版本的版本號的前幾位)
git reflog 查看命令歷史,以便確定要回到未來的哪個版本
git diff HEAD -- readme.txt 查看readme.txt文件在工作區和版本庫裏面最新版本的區別
git checkout -- readme.txt 讓readme.txt這個文件回到最近一次git commit或git add時的狀態
git reset HEAD readme.txt 把暫存區的修改回退到工作區
git remote add origin [email protected]:michaelliao/learngit.git 把本地倉庫與遠程庫關聯(SSH法)
git remote add origin http://github.com/michaelliao/learngit.git 把本地倉庫與遠程庫關聯(HTTPs法)
git push -u origin master 當前分支master推送到遠程,加上了-u參數,Git還會把本地的master分支和遠程的master分支關聯起來,在以後的推送或者拉取時就可以簡化命令 git push origin master
git clone [email protected]:michaelliao/gitskills.git 克隆到本地庫 同關聯
git checkout -b dev 表示創建並切換dev分支,相當於以下兩條命令
git branch dev 創建dev分支
git checkout dev 切換到dev分支
git branch 查看分支
git merge dev 用於合併指定分支(dev)到當前分支(如:master)(Fast forward模式)
git branch -d dev 刪除dev分支(若未合併就刪不了)
git branch -D dev 強行刪除dev分支
git merge --no-ff -m "merge with no-ff" dev 禁用Fast forward模式的提交,Git就會在merge時生成一個新的commit,"merge with no-ff"是提交信息
git stash 把當前工作現場“儲藏”起來,等以後恢復現場後繼續工作
git stash list 查看當前分支的工作現場
git stash drop 刪除工作現場
git stash apply stash@{0} 恢復stash@{0}的工作現場
git log --graph --pretty=oneline --abbrev-commit 查看分支的合併情況
git log --graph 看到分支合併圖
git remote 查看遠程庫的信息
git remote -v 顯示更詳細的信息
git checkout -b dev origin/dev 創建遠程origin的dev分支到本地
git branch --set-upstream dev origin/dev 設置dev和origin/dev的鏈接
git pull 把和當前分支綁定的遠程分支上的代碼更新下來
其它
git branch -a 查看遠程分支
git rebase -i HEAD~2 合併兩個提交 https://www.cnblogs.com/tocy/p/git-rebase-merge-commit.html
http://www.jianshu.com/p/964de879904a
git commit --amend -m "重寫" 修正最後一個 commit 消息爲"重寫"
git reset HEAD 取消緩存區的修改
git reset commit_id 完成Commit命令的撤銷,但是不對代碼修改進行撤銷
git fetch 更新remote索引,當遠程的東西不同步時,類似刷新
git push origin --delete dev 刪除遠程分支dev
git show commit_id 根據commit id查看該提交具體修改了什麼
查看遠程分支提交信息:1.使用fetch命令,將遠程分支dev拉下來(不更新)
git fetch origin dev
2.切換到遠程分支dev
git checkout origin/dev