## GIT 基礎知識:適合網頁開發初學者👶
## 什麼是 `Git`?
1. Git 是一個分散式版本控制系統。
2. 整個代碼庫及其歷史記錄都存儲在每位開發者的電腦上,方便進行分支和合併操作。
3. 它被用作版本控制系統 (VCS),用於追蹤電腦文件的變更。
* 分散式版本控制
* 協調多位開發者的工作
* 誰在什麼時候做了哪些修改
* 隨時回退到之前的版本
* 本地與遠端倉庫
## GIT 的概念
* 追蹤代碼歷史
* 為文件拍攝 "快照"
* 由你決定何時拍攝快照,通過 "提交" 完成
* 你可以隨時訪問任何快照
* 提交前可以先暫存文件
### Git 與 GitHub 的區別
| Git | GitHub |
| ------- | ----------- |
| Git 是一個軟件 | GitHub 是一個雲端服務 |
| Git 安裝在本地系統 | GitHub 是基於網絡的 |
| 它是一個命令行工具 | 它是一個圖形化界面 |
| Git 由 Linux 維護 | GitHub 由 Microsoft 維護 |
| 它專注於版本控制和代碼共享 | 它專注於集中式代碼托管 |
| Git 是開源的 | GitHub 提供免費和付費等級 |
| Git 發布於 2005 年 | GitHub 發布於 2008 年 |
## GIT 安裝
* Linux(Debian)
`$sudo apt-get install git`
* Linux(Fedora)
`$sudo yum install git`
* [下載](http://git-scm.com/download/mac) Mac 版本
* [下載](http://git-scm.com/download/win) Windows 版本
### 安裝步驟:
1.
2.
3.
4.
5.
6. 然後繼續點擊 Next > Next > Next > Install
7.
### 安裝完成後需要使用 Git Bash 配置 Git
1. `git config --global user.name 'YourName'`
2. `git config --global user.email 'YourEmail'`
___
## Git 指令
___
### 獲取與創建項目
| 指令 | 描述 |
| ------- | ----------- |
| `git init` | 初始化本地 Git 倉庫 |
| `git clone ssh://git@github.com/[username]/[repository-name].git` | 創建遠端倉庫的本地副本 |
### 基本快照操作
| 指令 | 描述 |
| ------- | ----------- |
| `git status` | 檢查狀態 |
| `git add [file-name.txt]` | 添加文件到暫存區 |
| `git add -A` | 添加所有新文件和已修改文件到暫存區 |
| `git commit -m "[commit message]"` | 提交更改 |
| `git rm -r [file-name.txt]` | 刪除文件(或文件夾) |
| `git push` | 推送到遠端倉庫 |
| `git pull` | 從遠端倉庫拉取最新更改 |
### 分支與合併
| 指令 | 描述 |
| ------- | ----------- |
| `git branch` | 列出分支(星號表示當前分支) |
| `git branch -a` | 列出所有分支(本地和遠端) |
| `git branch [branch name]` | 創建新分支 |
| `git branch -D [branch name]` | 刪除分支 |
| `git push origin --delete [branch name]` | 刪除遠端分支 |
| `git checkout -b [branch name]` | 創建新分支並切換到該分支 |
| `git checkout -b [branch name] origin/[branch name]` | 克隆遠端分支並切換到該分支 |
| `git branch -m [old branch name] [new branch name]` | 重命名本地分支 |
| `git checkout [branch name]` | 切換到分支 |
| `git checkout -` | 切換到上次檢出的分支 |
| `git checkout -- [file-name.txt]` | 放棄文件的更改 |
| `git merge [branch name]` | 合併分支到當前分支 |
| `git merge [source branch] [target branch]` | 合併分支到目標分支 |
| `git stash` | 暫存工作目錄中的更改 |
| `git stash clear` | 清除所有暫存的條目 |
### 分享與更新項目
| 指令 | 描述 |
| ------- | ----------- |
| `git push origin [branch name]` | 推送分支到遠端倉庫 |
| `git push -u origin [branch name]` | 推送更改到遠端倉庫(並記住分支) |
| `git push` | 推送更改到遠端倉庫(記住的分支) |
| `git push origin --delete [branch name]` | 刪除遠端分支 |
| `git pull` | 更新本地倉庫到最新提交 |
| `git pull origin [branch name]` | 從遠端倉庫拉取更改 |
| `git remote add origin ssh://git@github.com/[username]/[repository-name].git` | 添加遠端倉庫 |
| `git remote set-url origin ssh://git@github.com/[username]/[repository-name].git` | 設置倉庫的遠端分支為 SSH |
### 檢查與比較
| 指令 | 描述 |
| ------- | ----------- |
| `git log` | 查看更改 |
| `git log --summary` | 查看詳細更改 |
| `git log --oneline` | 簡要查看更改 |
| `git diff [source branch] [target branch]` | 合併前預覽更改 |
---
**免責聲明**:
本文件已使用人工智能翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。雖然我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。原始文件的母語版本應被視為權威來源。對於重要信息,建議使用專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或錯誤解釋概不負責。