git教程 代碼托管平臺:git.acwing.com 1 git基本概念 工作區:倉庫的目錄。工作區是獨立於各個分支的。 暫存區:數據暫時存放的區域,類似於工作區寫入版本庫前的緩存區。暫存區是獨立於各個分支的。切換分支不會新創建暫存區。 版本庫:存放所有已經提交到本地倉庫的代碼版本 版本結構:樹結 ...
git教程
代碼托管平臺:git.acwing.com
1 git基本概念
工作區:倉庫的目錄。工作區是獨立於各個分支的。
暫存區:數據暫時存放的區域,類似於工作區寫入版本庫前的緩存區。暫存區是獨立於各個分支的。切換分支不會新創建暫存區。
版本庫:存放所有已經提交到本地倉庫的代碼版本
版本結構:樹結構,樹中每個節點代表一個代碼版本。
origin:預設代表雲端
2 git常用命令
git config --global user.name xxx
:設置全局用戶名,信息記錄在~/.gitconfig
文件中git config --global user.email [email protected]
:設置全局郵箱地址,信息記錄在~/.gitconfig
文件中git init
:將當前目錄配置成git倉庫,信息記錄在隱藏的.git文件夾中git add XX
:將XX文件添加到暫存區(add是指將文件的修改加到暫存區,並不僅僅是添加文件的意思)git add .
:將所有待加入暫存區的文件加入暫存區(add是指將文件的修改加到暫存區,並不僅僅是添加文件的意思)- 將刪除操作更新至
git rm --cached XX
:將文件從倉庫索引目錄中刪掉- 或者用
git restore --staged XX
文件從暫存區中拿回工作區?
- 或者用
git commit -m "給自己看的備註信息"
:將暫存區的內容提交到當前分支——將暫存區持久化(相當於開了一個新的節點)git status
:查看倉庫狀態git diff XX
:查看XX文件相對於暫存區修改了哪些內容git log
:查看當前分支的所有版本,從最初的起點走到當前路徑git reflog
:查看HEAD指針的移動歷史(包括被回滾的版本),可以看作是hard
移動後的記錄git reset --hard HEAD^
或git reset --hard HEAD~
:將代碼庫回滾到上一個版本git reset --hard HEAD^^
:往上回滾兩次,以此類推git reset --hard HEAD~100
:往上回滾100個版本git reset --hard 版本號
:回滾到某一特定版本
git checkout — XX
或git restore XX
:將XX文件尚未加入暫存區的修改全部撤銷(將工作區的修改回滾到暫存區存的)
git remote add origin [email protected]:xxx/XXX.git
:將本地倉庫關聯到遠程倉庫(origin
預設代表雲端,@
前面的是用戶名,在伺服器上的username
;後面相當於伺服器的ip地址)- 例:
git remote add origin [email protected]:yxc/project.git
- 例:
git push -u
(第一次需要-u以後不需要):將當前分支推送到遠程倉庫,不寫-u
預設推到master
- 例:
git push -u origin master
- 例:
git push origin branch_name
:將本地的某個分支推送到遠程倉庫git clone [email protected]:xxx/XXX.git
:將遠程(雲端)倉庫XXX下載到當前目錄下
-
git checkout -b branch_name
:創建並切換到branch_name
這個分支- 此分支由
master
繼承而來,新分支的內容跟繼承的節點內容完全一樣
- 此分支由
-
git branch
:查看所有分支和當前所處分支 -
git checkout branch_name
:切換到branch_name
這個分支
例:git checkout master
回到主分支 -
git merge branch_name
:將分支branch_name
合併到當前所在的分支上(將當前節點的指針直接指向branch_name
節點,不產生複製操作,直接改一個引用)
-
git branch -d branch_name
:刪除本地倉庫的branch_name
分支- 分支改動後合併至主分支,同時主分支也對同一文件進行了改動和commit,會產生衝突
- 自行修改
- 合併成功後,即可刪除分支“dev”
git branch branch_name
:創建新分支git push --set-upstream origin branch_name
:設置本地的branch_name
分支對應遠程倉庫的branch_name
分支(雲端沒有此分支,此命令為創建並提交)git push -d origin branch_name
:刪除遠程倉庫的branch_name
分支git pull
:將遠程倉庫的當前分支與本地倉庫的當前分支合併git pull origin branch_name
:將遠程倉庫的branch_name
分支與本地倉庫的當前分支合併
git branch --set-upstream-to=origin/branch_name1 branch_name2
:將遠程的branch_name1分支與本地的branch_name2分支對應(綁定到一塊)git checkout -t origin/branch_name
將遠程的branch_name
分支拉取到本地
-
git stash
:將工作區和暫存區中尚未提交的修改存入棧中
git stash list
:查看棧中所有元素 -
git stash apply
:將棧頂存儲的修改恢復到當前分支,但不刪除棧頂元素git stash pop
:將棧頂存儲的修改恢復到當前分支,同時刪除棧頂元素
-
git stash drop
:刪除棧頂存儲的修改 -
rm XXX(project) -rf
:刪除本地倉庫