之前認真的學過git,最近一直在學習其他的,沒怎麼用git,都有點生疏了,今天來複習一下git,加之之前學git也沒有做筆記
首先講一下工作區和暫存區,
工作區:主機上的工作目錄,例如建立的乙個專案目錄。工作區中有乙個隱藏目錄.git
,它不算工作區,而是git的版本庫。
git的版本庫中存了很多東西,其中最重要的就是成為stage(或者叫index)的暫存區,還有git為我們自動建立的第乙個分支master,以及指向master的乙個指標head,如下圖
把檔案往git版本庫里新增的時候,是分兩步執行的:
第一步是用git add把檔案新增進去,實際上就是把檔案修改新增到暫存區;
第二步是用git commit提交更改,實際上就是把暫存區的所有內容提交到當前分支。
因為我們建立git版本庫時,git自動為我們建立了唯一乙個master分支,所以,現在,git commit就是往master分支上提交更改。
可以簡單理解為,需要提交的檔案修改通通放到暫存區,然後,一次性提交暫存區的所有修改。
$ git config --global user.name "henulwj"
$ git config --global user.email "[email protected]"
$ mkdir mygit
$ cd mygit
$ git init
$ touch reviewgit.md
$ git add reviewgit.md
$ git commit -m "add reviewgit.md file"
$ git commit -a -m "add reviewgit.md file"
#不用再執行git add了
$ git status
$ git clone git:
/***.git [user-defined directory]
$ cat .gitignore
*.[oa]
!lib.a
*.~/todo
build/
$ git diff [filename or directory]
$ git rm [-f] [filename or directory]
$ git mv file_from file_to
$ git log
#列出所有的更新
$ git log -p -2
#展開顯示每次提交的內容更新,-2僅顯示最近的兩次更新
$ git log --stat
#僅顯示簡要的增改行數統計
$ git log --pretty=oneline #每個提交在一行顯示
$ git log --pretty=format:"%h - %an, %ar : %s"
#定製顯示的記錄格式
#用oneline或format時結合--graph選項,可以看到開頭多出一些ascii字串表示的圖形,形象地展示了每個提交所在的分支及其分化衍合情況
$ git reset head filename
$
gitcheckout--
filename
$ git reset --hard head^
#回退到上乙個版本,head^^上上個版本,head~100往上100個版本
#head^也可以替換成commit id的前七位
$ git reflog
$ git remote add origin [email protected]:henulwj/gitexercise.git
$ git
push
[-u]
[remote-name]
[branch-name] #第一次推送加上-u,之後就不用了
$ git checkout -b dev #建立並切換到dev分支
#可以分為兩步
#git branch dev #建立分支dev
#git checkout dev #切換到dev分支
$ git merge[--no-ff] [-m "***x"] dev #合併dev分支到當前分支,--no-ff禁用fast forward模式合併
$ git branch -[d/d] dev #刪除dev分支,-d強制刪除分支
$ git stash
$ git stash list #檢視儲存的工作現場
$ git stash pop #恢復工作現場,同時刪除stash
$ git stash drop stash@ #刪除stash
#分支名字最好一致
$ git branch --
set-upstream branch-name origin/branch-name
$ git pull #從遠端獲取最新版本並merge到本地
$ git fetch [remote-name] [branch-name] #從遠端獲取最新版本到本地,不會自動merge
$ git tag tag-name [commit-id] #預設標籤是打在最新的commit,也可以指定commit id
$ git tag #檢視所有標籤
$ git show tag-name #檢視標籤資訊
$ git tag -a tag-name -m "comment" commit-id #建立帶有說明的標籤,-a指定標籤名,-m指定說明文字
$ git tag -d tag-name #刪除本地標籤
$ git checkout tag-name #切換到對應tag-name
$ git push origin tag-name #推送標籤到遠端
$ git push origin --tags #一次性推送全部尚未推送的本地標籤
$ git push origin :refs/tags/tag-name
#從遠端刪除標籤
$ git config --global alias.st status #git st = git status
$ git config --global alias.co checkout # git co = git checkout
$ git config --global alias.unstage 'reset head'
#git reset head file = git unstage file
$ git config --global alias.lg "log --color --graph --pretty=format:'%cred
%h%creset -%c(yellow)%d
%creset
%s%cgreen(%cr) %c(bold blue)%creset' --abbrev-commit"
$ git remote rename [old-remote-name] [new-remote-name] #遠端倉庫重新命名
$ git remote rm [remote-name] #刪除遠端倉庫
[未完待續]~~
git 學習記錄
1 配置git使用預設的編輯器,比如當commit 時忘記提交log資訊,git將呼叫此編輯器讓你輸入.配置方法 git config global core.editor emacs 其中emacs可以替換成你喜歡的任意編輯器 2 git rm 刪除版本庫中的檔案記錄 從index中刪除 包括工作...
Git學習記錄
檢視狀態 git status 檢視詳細修改 git diff 新增 刪除檔案 git add rm filename 提交並新增資訊 git commit m your descriptions 檢視歷史日記 git log 本地分支推送 git push origin branch local ...
git 學習記錄
好記性不如爛筆頭,量變引質變,記錄下git學習記錄。首先大家的電腦都安裝git了吧,沒有就自行google安裝,這裡就不列出步驟了這裡先介紹一種情況 1 在專案的目錄下git bash git init這樣就有乙個git 專案了,這邊可以先放著。2 在git開源中國中建立乙個專案,如圖所示 複製專案...