Git學習記錄

2021-07-04 06:00:59 字數 4070 閱讀 4073

之前認真的學過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開源中國中建立乙個專案,如圖所示 複製專案...