git工作原理---**Extraction Content:**
**Title:**
一图看懂 Git 工作原理
**Chart Type:**
Sequence Diagram/Flowchart illustrating interactions between Git components.
**Main Elements:**
**Components (Vertical Lines/Columns):**
1. 本地工作目录 (Local Working Directory) - Represented by a folder icon.
2. 暂存区 (Staging Area) - Represented by a box icon.
3. 本地仓库 (Local Repository) - Represented by a cylinder icon.
4. GitHub 远程仓库 (GitHub Remote Repository) - Represented by the GitHub logo.
**Interactions/Commands (Horizontal Dashed Arrows with Labels):**
* **Interaction:** Initializes a repository.
* **Command:** git init
* **Direction:** From 本地工作目录 to 本地仓库.
* **Interaction:** Adds changes from the working directory to the staging area.
* **Command:** git add
* **Direction:** From 本地工作目录 to 暂存区.
* **Interaction:** Commits changes from the staging area to the local repository.
* **Command:** git commit
* **Direction:** From 暂存区 to 本地仓库.
* **Interaction:** Checks the status of the working directory and staging area.
* **Command:** git status
* **Direction:** From 本地工作目录, pointing towards 暂存区.
* **Interaction:** Views the commit history.
* **Command:** git log
* **Direction:** From 本地工作目录, pointing towards 本地仓库.
* **Interaction:** Merges a local branch into the current branch.
* **Command:** git merge
* **Direction:** From 本地工作目录, pointing towards 本地仓库.
* **Interaction:** Creates a new branch.
* **Command:** git branch
* **Direction:** From 本地工作目录, pointing towards 本地仓库.
* **Interaction:** Switches to a specified branch.
* **Command:** git checkout
* **Direction:** From 本地工作目录, pointing towards 本地仓库.
* **Interaction:** Views the detailed changes in files.
* **Command:** git diff
* **Direction:** From 本地工作目录, pointing towards 暂存区.
* **Interaction:** Clones a remote repository into a new local repository.
* **Command:** git clone
* **Direction:** From GitHub 远程仓库, via 本地仓库, to 本地工作目录.
* **Interaction:** Pushes changes from the local repository to the remote repository.
* **Command:** git push
* **Direction:** From 本地仓库 to GitHub 远程仓库.
* **Interaction:** Fetches updates from the remote repository to the local repository.
* **Command:** git fetch
* **Direction:** From GitHub 远程仓库 to 本地仓库.
* **Interaction:** Pulls the latest code from a remote branch (and automatically merges).
* **Command:** git pull origin <分支名>
* **Direction:** From GitHub 远程仓库, via 本地仓库, to 本地工作目录.
* **Annotation:** (自动合并) (Auto Merge)
**Other Relevant Text:**
* **Source/Annotation:** 公众号: 程序员晓凡 (WeChat Official Account: Programmer Xiaofan)