---
# System prepended metadata

title: Git 指南
tags: [git]

---

---
tags: git
---
###### tags: `git`
# Git 指南

## **Git Clone & 分支**
複製資料庫(包含所有文件、分支跟提交) 到本地端 預設以 master 分支為主
> `git clone <remote-repo-url>`

<br>

複製特定資料庫分支 到本地端
> `git clone <remote-repo-url> --branch <branch-name> --single-branch`
==(-b = --branch)==
`git clone <remote-repo-url> -b <branch-name> --single-branch`

<br>

## **Git Checkout**
回到某一標籤下的狀態
> `git checkout -b <branch-name> <tag-name>`

<br>

## **Git 還原**
### revert
以新增一個 commit 的方式還原某一個 commit 的更改
> `git revert <commit-id>`

<br>

### reset 
還原前兩個版本
> `git reset HEAD^^`

還原前兩個版本，所有更新檔案都放棄
> `git reset HEAD^^ --hard`

<br>

==Note：==
> ^就是向前一個版本，兩個 ^^ 就是向前推兩個版本，除此之外，^ = ~。
> 如果向前推進的版本很多，你也可以用數字取代。
> 例如 `git reset HEAD^2` 等於 `git reset HEAD~~` 也等於 `git reset HEAD^^`。
> 和 revert 的區別：reset 命令會抹去某個 commit id 之後的所有 commit 。

<br>

## **Git Commit**
更改上一個 commit 的描述
> `git commit --amend -m "an updated commit message"`

<br><br>

**資源**
[1] *Git Clone*
https://github.com/git-guides/git-clone

[2] *Git Clone Branch – How to Clone a Specific Branch*
https://www.freecodecamp.org/news/git-clone-branch-how-to-clone-a-specific-branch/





