git學習筆記

學習視頻1
學習視頻2

版本控制系統

初次使用前的配置

git config --global user.name "用戶名"
git config --global user.email "郵箱"
查看配置
git config --list

基礎知識

git每個版本都是獨立保存。

working directory stage(index) repository(HEAD)
工作區 add checkout 暫存區 commit reset 倉庫
工作流程:
  1. 在工作區添加、修改文件
  2. 將需要進行版本管理的文件放入暫存區
  3. 將暫存區的文件提交到倉庫
三種狀態:
  • 已修改 modified
  • 已暫存 staged
  • 已提交 committed
本地管理
  1. 新建文件夾並進入
  2. git init 初始化,將建立.git隱藏文件夾
  3. 新建並編輯文本文件,git add 文件名 放入暫存區
  4. git commit -m "更改信息" 提交到倉庫 --amend更正最後一次提交

查看工作狀態和歷史提交

查看狀態

git status

  • 新建文件,在工作區,untracked
  • add之後,進入暫存區,to be commited;git reset HEAD [文件]取消暫存(to unstage)
  • commit之後,進入倉庫,nothing to commit, working directory clean
  • 修改倉庫文件(modified),回到工作區,未暫存,繼續add和commit;git checkout -- 文件放棄修改
  • 修改暫存區文件(modified),修改前文件依然在暫存區,待提交;修改後文件回到工作區,繼續add和commit
查看歷史提交

git log --oneline --graph --all
git reflog

回到過去

git reset HEAD~ 回到上一個版本
git reset HEAD~數字 回到多個版本以前
git reset HEAD~版本號 回到指定版本
--soft 移動HEAD指針,但不回滾到暫存區,相當於撤銷上一次commit
[--mixed] 默認,移動HEAD指針,並回滾到暫存區
--hard 移動HEAD指針,並回滾到暫存區,同時將暫存區還原到工作區

git reset 版本號 文件/目錄 回滾個別文件,但不會移動指針
git reset 版本號 回滾到之後

版本對比

git diff 當前工作區和暫存區
git diff 版本號 當前工作區和倉庫版本
git diff HEAD 當前工作區和倉庫最新版
git diff --cached [版本號] 暫存區和倉庫版本
git diff 版本號1 版本號2 兩個倉庫版本

刪除文件

git rm 文件 刪除文件,只刪除工作區和暫存區,也就是取消跟蹤
git rm --cached 文件 只刪除暫存區
git checkout -- 文件 撤銷刪除

重命名

git mv 舊文件名 新文件名

分支

git branch 分支名 創建分支
git checkout 分支名 切換分支,本質是指針指向新分支
git checkout -b 分支名 創建並切換分支
git merge 分支名 合併分支到當前分支。如果不同分支都有改動,要先解決衝突。
git branch -d 分支名 刪除分支
git checkout 版本 匿名分支

checkout 和 reset

checkout:從歷史版本或者暫存區拷貝到工作區;切換分支
reset:恢復文件時,沒有soft或者hard。

reset將文件恢復到暫存區,而checkout同時覆蓋暫存區和工作區。
checkout在切換分支前會檢查是否clean,reset --hard直接覆蓋。
reset移動HEAD所在分支的指向,checkout只移動HEAD自身。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章