日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【学习笔记】git 使用文档

發布時間:2023/11/27 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【学习笔记】git 使用文档 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

安裝 git

# mac 環境
brew install git

檢查是否安裝成功

?  ~ git --version
git version 2.20.1 (Apple Git-117)

卸載 git

?  ~ which -a git
/usr/bin/git
?  ~ cd /usr/bin
?  bin sudo rm -rf git*

git init 命令

  1. 對一個空文件,git 初始化。文件名稱增加了’git:(master)’,說明初始化成功了。
?  mygit git init
Initialized empty Git repository in /Users/maimai/Documents/Demo/mygit/.git/
?  mygit git:(master)
  1. 查看當前文件目錄結構。發現原空文檔下,多了一個.git文件夾。
?  mygit git:(master) tree -a
.
└── .git├── HEAD		# 包含了一個分支的引用,通過這個文件Git可以得到下一次commit的parent,可以理解為指針├── config		# git倉庫的配置文件├── description	# 倉庫的描述信息,主要給gitweb等git托管系統使用├── hooks		# 存放一些shell腳本,可以設置特定的git命令后觸發相應的腳本│   ├── applypatch-msg.sample│   ├── commit-msg.sample│   ├── fsmonitor-watchman.sample│   ├── post-update.sample│   ├── pre-applypatch.sample│   ├── pre-commit.sample│   ├── pre-push.sample│   ├── pre-rebase.sample│   ├── pre-receive.sample│   ├── prepare-commit-msg.sample│   └── update.sample├── info		# 存放倉庫的一些信息│   └── exclude├── objects		# 存放所有的git對象│   ├── info│   └── pack└── refs├── heads	# 保存當前最新的一次提交的哈希值└── tags

查看部分文件:

?  mygit git:(master) cat .git/HEAD		# 下一次commit的parent
ref: refs/heads/master
?  mygit git:(master) cat .git/config	# git倉庫的配置文件
[core]repositoryformatversion = 0filemode = truebare = falselogallrefupdates = trueignorecase = trueprecomposeunicode = true

取消 git init 操作的命令為 rm -rf .git。git 初始化本質是增加了一個.git文件,刪除之后即取消了初始化。

文件的狀態變化周期

untrackedstagedmodifiedunmodifiedgit add {file}git reset HEAD {file}git commit -mgit rm --cached {file}編輯文件git rm --cached {file}git checkout -- {file}git add {file}untrackedstagedmodifiedunmodified
  1. untracked:未跟蹤狀態 —— 工作區增加新文件s, 但并沒有加入到 git 庫, 不參與版本控制。通過 git add 命令變為 staged 狀態。
  2. staged: 已暫存狀態 —— 對已修改文件的當前版本做了標記,存放在一個不可見的暫存區域,做為下次提交的內容的一部分。執行git commit則將修改同步到庫中.
  3. unmodified:未修改狀態 —— 文件已入庫, 即版本庫中的文件快照內容與文件夾中完全一致。
  4. modified: 已修改狀態 —— 在工作目錄下修改了文件。

查看初始狀態

初始狀態,工作區為最新代碼,.git 文件保存版本庫和暫存區內容【初始化的 git 項目,無暫存區】

?  mygit git:(master) git status	# 初始狀態
On branch masterNo commits yetnothing to commit (create/copy files and use "git add" to track)

增加文件

初始狀態,增加文件 README.md 后,由初始狀態轉化為 untracked 狀態(修改也存在的文件,狀態更新為 modified)
修改內容僅存在本地工作區,版本庫和暫存區都與master保持一致,未被修改【.git文件夾未更新】

?  mygit git:(master) vi README.md
?  mygit git:(master) ? tree		# 查看文檔結構,其中添加了一個文件
.
└── README.md0 directories, 1 file
?  mygit git:(master) ? git status	# 增加文件后,查看git狀態,更換為 untracked
On branch masterNo commits yetUntracked files:(use "git add <file>..." to include in what will be committed)README.mdnothing added to commit but untracked files present (use "git add" to track)

git add .

使用 git add . 命令,將工作區中的修改文件 README.md 放進暫存區。此時處于暫存區的 README.md 文件處于staged狀態【.git 目錄下增加 index 和 objects/d6/1d841cf82eef2774ac3e57fb5072b9ef67b4fb】

?  mygit git:(master) ? git add README.md	# 使用 add 命令,將修改內容放進暫存區
?  mygit git:(master) ? git status			# add 命令后,原 untracked 狀態修改為committed
On branch masterNo commits yetChanges to be committed:(use "git rm --cached <file>..." to unstage)new file:   README.md

查看此時 mygit 的結構,發現 .git 文件夾下多了一個index的文件。

?  mygit git:(master) ? tree -a
.
├── .git			# 保存項目的元數據、版本和分支的地方
│   ├── HEAD
│   ├── config
│   ├── description
│   ├── hooks
│   │   ├── applypatch-msg.sample
│   │   ├── commit-msg.sample
│   │   ├── fsmonitor-watchman.sample
│   │   ├── post-update.sample
│   │   ├── pre-applypatch.sample
│   │   ├── pre-commit.sample
│   │   ├── pre-merge-commit.sample
│   │   ├── pre-push.sample
│   │   ├── pre-rebase.sample
│   │   ├── pre-receive.sample
│   │   ├── prepare-commit-msg.sample
│   │   └── update.sample
│   ├── index			# 暫存區。Git 術語叫做“索引”
│   ├── info
│   │   └── exclude
│   ├── objects			# 對象數據庫
│   │   ├── d6
│   │   │   └── 1d841cf82eef2774ac3e57fb5072b9ef67b4fb
│   │   ├── info
│   │   └── pack
│   └── refs
│       ├── heads
│       └── tags
└── README.md10 directories, 19 files
?  mygit git:(master) ? cat .git/index	
DIRC_?E$Ya�_?E$Ya<��������.�'t�>W�Pr��g��	README.md`��\A�k�$�����mdU%

使用 git ls-files --stage 命令可以查看暫存區內容

?  mygit git:(master) ? git ls-files --stage	
100644 0d862c702122bb62b6c21a2fc2f83128aa5a57b3 0	README.md

git丟棄本地修改 git checkout . && git clean -xdf

git commit -m

使用 git commit 命令,將暫存區的目錄樹寫到版本庫中。處于 staged 狀態的 README.md 處于unmodified 狀態。

?  mygit git:(master) ? git commit -m 'first initial'	# 提交更新
[master (root-commit) 9d5ae58] first initial1 file changed, 1 insertion(+)create mode 100644 README.md
?  mygit git:(master) git status		# 暫存區的文件寫入.git文件
On branch master
nothing to commit, working tree clean

非初次提交狀態,使用 git commit -a -m 'xxx' 可替代 git addgit commit 過程。直接從本地提交到版本庫

git rm / git restore

修改文件并提交到暫存區后,使用 git rm --cached {filename} 命令 或 git restore --staged {filename},直接從暫存區刪除文件,工作區修改保持不變

?  mygit git:(master) ? git rm --cached README.md
rm 'README.md'
?  mygit git:(master) ? git status
On branch masterNo commits yetUntracked files:(use "git add <file>..." to include in what will be committed)README.mdnothing added to commit but untracked files present (use "git add" to track)

git checkout

使用 git chekout . 命令 或 git chekout -- {filename},工作區的全部或指定文件被替換為暫存區中的文件。工作區的被更新的文件或存在被覆蓋的風險。

?  mygit git:(master) vi demo1.py
?  mygit git:(master) ? python demo1.py
hello word!
?  mygit git:(master) ? git checkout .
Updated 1 path from the index
?  mygit git:(master) git status
On branch master
nothing to commit, working tree clean
?  mygit git:(master) ls
README.md demo1.py
?  mygit git:(master) cat demo1.py
?  mygit git:(master)

git checktout HEAD .git checktout HEAD . 命令,會用 HEAD 指向的master分支中全部或部分文件替換暫存區及工作區的文件。

cat .gitignore		# 忽略某些文件
git diff			# 查看尚未暫存的文件更新了哪些部分
git diff --cached	# 查看已暫存的文件與上次提交的快照之間的差異
git commit			# 提交更新
git commit -a -m 'first initial'	# 跳過使用暫存區域的方式,自動將已跟蹤過的文件暫存起來一并提交
git rm -f a.test		# 從git強制移除文件a.text
git rm --cached readme.txt
git restore --staged readme.txt

總結

以上是生活随笔為你收集整理的【学习笔记】git 使用文档的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

歡迎分享!

轉載請說明來源于"生活随笔",并保留原作者的名字。

本文地址:【学习笔记】git 使用文档