Coder Social home page Coder Social logo

git's Introduction

Visual Studio Code Git GitHub

Git 使用指南

本指南提供基本的 Git 安裝和使用方法,開始使用 Git 進行版本控制,也是我學習的過程。

安裝 Git

  1. 安裝 Git 如果尚未安裝 Git,你需要先下載並安裝它。你可以在Git官方網站找到適合你操作系統的安裝程序。安裝完成後,你可以在終端(或命令提示字元)中使用 Git 命令。

  2. 設置使用者名稱和電子郵件 (**建議使用github的使用者名稱和email) 在開始使用 Git 之前,你需要設置使用者名稱和電子郵件地址,這些信息將用於你的 Git 提交記錄。在終端中運行以下命令:

git config --global user.name "Your Name"
git config --global user.email "[email protected]"

需要知道的一些名詞解釋

  • .git:本地倉庫檔案,是git的核心,包含了版本歷史、分支訊息。
  • 分支(branch):指該倉庫不同的版本。一個倉庫可以同時存在多個分支,每個分支都代表了一個獨立開發的路徑,也可以使兩個不同的分支合併在一起。
  • Pull Request(PR):是其他人對你的代碼做出提交修改、討論。通常用於開源項目以及團隊合作中,PR允許其他貢獻者向項目擁有者提交自己的代碼更改 ,並請求將其合併到主分支上。
  • HEAD指針:他是一個指針,指向當前倉庫的分支。
  • Clone(克隆):我比較喜歡稱他複製貼上,這是開源項目最大的優點,不過我也認為也是一個需要承擔的風險,在你完全開源的情況下,等於是你直接給其他人 你的程式碼,直接盜走你的技術。emm...

建立本地倉庫

  1. 初始化新倉庫 如果你想要使用 Git 來管理一個新項目,你需要在該項目的目錄中初始化一個 Git 倉庫。在終端中移動到你的項目目錄,然後運行以下命令:
cd C:/

git init
  1. 將檔案添加到倉庫 一旦你初始化了 Git 倉庫,你就可以將你的檔案添加到倉庫中,這樣 Git 就可以跟蹤這些檔案的更改。運行以下命令:
git add <filename>

在使用 git add 命令時,如果檔案位於當前目錄下,你只需要指定檔名即可,不需要填寫完整的檔案路徑。但是如果檔案不在當前目錄下,你需要填寫相對路徑或絕對路徑。

假設你要將 example.txt 加入到 Git 的跟蹤清單中:

git add example.txt

這樣就會將 example.txt 加入到 Git 的暫存區中,準備進行下一步的提交。

如果 example.txt 位於某個子目錄下,你可以使用相對路徑:

git add path/to/example.txt

或者如果你在不同目錄下,你也可以使用絕對路徑:

git add /path/to/example.txt

如果你要將整個資料夾上傳到 Git 倉庫中,你可以使用 git add 命令來將資料夾及其中的所有檔案添加到暫存區中。可以使用以下命令:

git add 0621/ or git add ./

如果你不在 C:/ 目錄下,你可以使用絕對路徑來指定 0621 資料夾的位置:

git add C:/AppServ/www/0621/
  1. 從暫存區提交到本地儲存庫:
git commit -m "<Message>"

-m的意思是message

上傳到遠端倉庫 (以GitHub舉例)

  1. 使用以下命令將你的本地儲存庫與剛剛在 GitHub 上創建的倉庫關聯起來(假設你的 GitHub 用戶名為 username,你創建的倉庫名為 repository):
git remote add origin https://github.com/username/repository.git
  1. 將你的本地提交推送(push)到 GitHub 上的倉庫中:
git push -u origin master

-u 是指定分支 如果第一次push有加 之後就可以省略-u origin master 直接git push (**請先確認遠端倉庫的分支為何 通常都是master或main,延伸閱讀-- git branch -a)

常用Git指令

git clone: 從遠端倉庫克隆一個本地副本。

git clone <遠端倉庫的 URL> <目錄名稱>

git pull: 從遠端倉庫拉取並合併最新的更改。

git pull

直接就可以合併更新專案了...正常來說只要push過就會自動建立跟蹤分支(tracked branch) 如果沒有的話改成 git pull origin 簡單來說就是跟遠端倉庫合併

git checkout: 切換分支或恢復文件。
git checkout <branch_name> 

切換分支(前提是那個分支有存在)

git checkout -b <new_branch_name> 

建立一個新的分支 然後會切換到新的分支

git checkout -- <file> 

還原上一個檔案的commit(**這個沒有很熟)

git merge: 將一個分支的更改合併到當前分支。

git merge master

合併分支 合併的意義是連同舊的分支 所有的紀錄會傳到新的分支 且舊的分支也不會消失 但在做之前要記得切換到新的分支 這個merge後面要寫的是舊的分支(**切換請看git checkout)

git branch: 顯示、創建或刪除分支。

git branch 

可以看到這個git的所有分支 以及現在在啥分支

git branch -r 

確認遠端的分支是啥

git branch -a 

看本地和遠端的分支(**這蠻重要的)

git status: 顯示當前工作目錄的狀態。

git status

看現在那些文件被修改過,那些在暫存區,還有未被提交的 status是看到cmd開啟之後的工作內容 不是歷史紀錄(**延伸閱讀git log) ex.

  Changes not staged for commit:
  	(use "git add <file>..." to update what will be committed) 
  	(use "git restore <file>..." to discard changes in working directory)
        	modified:   .vs/Luck Simulator/v17/.suo

git log: 顯示提交日誌。

git log 

這個git的歷史紀錄

git log --graph

圖形化顯示提交的紀錄和顯示分支合併的情況

git diff: 顯示未提交更改的差異。

git diff --staged

顯示你add提交到暫存區的資料跟本地git資料庫進行比對 差異會顯示在下面(但是好像純用git diff啥都不會出現??可能是我錯的emm..)

git reset: 撤銷提交,並移動 HEAD 指針。

(請謹慎使用)

git reset HEAD <file> 

取消指定文件到暫存區的修改

git reset --soft HEAD~1 

取消最後一次的提交 但工作目錄不會受影響

git reset --hard HEAD~1 

取消最後一次的提交 "並且工作目錄下的文件會消失 (請謹慎使用)

未編輯

git stash: 暫存未完成的更改,以便稍後恢復。 git fetch: 從遠端倉庫下載物件和引用。 git remote: 管理遠端倉庫。 git tag: 標記特定的提交。

更新日期

2024-03-25

git's People

Contributors

yuchiyang123 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.