首頁 開發工具 Git 10分鐘一步步帶你看完最常用的git指令

10分鐘一步步帶你看完最常用的git指令

Aug 27, 2021 pm 02:04 PM
git指令

從本質上講,Git可以記錄文字的變化,但其定義是一個版本控制系統。你有可能已經以這種或那種方式使用了git:由於它的分散性質,它是程式碼版本控制的事實標準,與集中式的Apache Subversion(SVN)相對。

安裝git

要檢查是否安裝了Git,在終端機運行:

$ git version
git version 2.27.0.rc1.windows.1
登入後複製

如果沒有安裝,請依照https://git- scm.com/downloads 上的說明。 Mac用戶可以用brew來安裝它:brew install git。

配置git

我們只需要配置一些東西

git config --global user.name "前端小智" && # 你的名字
git config --global user.email johndoe@example.com && # 你的邮箱
git config --global init.defaultbranch main # 默认分支名称,与GitHub兼容
登入後複製

可以用下面命令查看當前的全域配置

git config --global --list
# Type ":q" to close
登入後複製

git在純文字中儲存配置,如果你想直接修改,可以直接在~/.gitconfig或~/.config/git/config中編輯全域配置。

正如命令所建議的那樣,去掉--global會使這些命令的適用範圍擴大到目前資料夾。但要測試這一點,我們需要一個儲存庫。

建立新儲存庫

儲存庫只是一個資料夾,裡面有我們想要追蹤的所有東西。透過指令建立:

mkdir gitexample && 
cd gitexample && 
git init
# gitexample git:(main)
登入後複製

這個指令在gitexample資料夾內建立了一個.git資料夾。這個隱藏的.git資料夾就是版本庫:所有的本機設定和修改都儲存在這裡。

改變

在儲存庫中建立一些東西:

echo "Hello, Git " >> hello.txt
登入後複製

運行git status,我們會看到新建立的未被追蹤的文件。

git status
# On branch main
# 
# No commits yet
# 
# Untracked files:
#  (use "git add <file>..." to include in what will be committed)
#   hello.txt
#
# nothing added to commit but untracked files present (use "git add" to track)
登入後複製

根據提示建議,我們新增檔案:

git add .
登入後複製

如果我們不想要所有檔案提新增可以使用

git add hello.txt
登入後複製

如果你現在檢查版本庫的狀態,你會看到文件已經被加入了(又稱為staged),但還沒有提交。

git status
# On branch main
# 
# No commits yet
# 
# Changes to be committed:
#  (use "git rm --cached <file>..." to unstage)
#   new file:   hello.txt
登入後複製

為了記錄這些變化,我們來提交它。

git commit -m "Add hello.txt"
# [main (root-commit) a07ee27] Adds hello.txt
# 1 file changed, 2 insertions(+)
# create mode 100644 hello.txt
登入後複製

git commit -m 是一個簡短的命令,你可以用git commit開啟編輯器(主要是vim),提供詳細的提交描述。

檢查提交記錄:

git log
# Author: qq449245884 <44924566884@qq.com>
# Date:   Sat Jul 17 14:57:24 2021 +0800
#
#    Add hello.txt
#
登入後複製

建立分支

#在很多情況下,擁有一個獨立的初始程式碼版本是很有用的:例如,在測試你不確定的功能時,或在一起工作時避免程式碼衝突。這正是git分支的意義所在:它從歷史上一個特定的點開始生長。

要建立分支,運行git branch NAME,要切換分支,運行git checkout NAME。或簡單地

git checkout -b dev # 切换到一个名为“dev”的新分支
# Switched to a new branch &#39;dev&#39;
# gitexample git:(dev)
登入後複製

我們在Hello.txt檔案中更改一些內容並提交更改:

echo "\nHello, Git Branch" >> hello.txt &&
git commit -am "Change hello.txt"
登入後複製

現在,切換到主分支:

git checkout main &&
cat hello.txt
# Switched to branch &#39;main&#39;
# Hello, Git
登入後複製

正如你所看到的,文件內容仍然和原來一樣。為了比較分支,我們可以運行。

git diff dev
# diff --git a/hello.txt b/hello.txt
# index 360c923..b7aec52 100644
# --- a/hello.txt
# +++ b/hello.txt
# @@ -1,3 +1 @@
# Hello, Git
# -
# -Hello, Git Branch
# (END)
# type ":q" to close
登入後複製

我們在主分支中進行更改:

echo "\nHi from Main Branch" >> hello.txt &&
git commit -am "Change hello.txt from main"
# [main 9b60c4b] Change hello.txt from main
# 1 file changed, 2 insertions(+)
登入後複製

現在讓我們試著把這些變化合併起來。

git merge dev
# Auto-merging hello.txt
# CONFLICT (content): Merge conflict in hello.txt
# Automatic merge failed; fix conflicts and then commit the result.
登入後複製

因為檔案在同一個地方被修改了兩次,我們就產生了衝突。看看這個檔案

cat hello.txt
<<<<<<< HEAD
Hello, Git
Hi from Main Branch
=======
Hello, Git
>>>>>>> dev
登入後複製

還有一個命令可以單獨查看更改:

git diff --ours # :q to close 
git diff --theirs #:q to close
登入後複製

你可以手動編輯檔案並提交修改,但我們設想一下,我們只想要其中一個版本。我們就從中止合併開始。

git merge --abort
登入後複製

並以 "theirs"策略重新啟動合併,這意味著在發生衝突時,我們將使用傳入的分支所堅持的東西。

git merge -X theirs dev
# Auto-merging hello.txt
# Merge made by the &#39;recursive&#39; strategy.
# hello.txt | 5 +----
# 1 file changed, 1 insertion(+), 4 deletions(-)
登入後複製

與此策略相反的是 "ours"。將這兩個改動合併在一起,需要手動編輯(或使用git mergetool)。

查看所有分支運行的清單

git branch # type :q to close
#  dev
# * main
登入後複製

最後,刪除分支運行:

git branch -d dev
# Deleted branch dev (was 6259828).
登入後複製

重置分支

分支從git歷史中的某一點開始"生長(grow)",rebase 允許改變這個點。我們再建立一個分支,並在hello.txt上加入一些改變。

git checkout -b story &&
echo "Once upon a time there was a file">>story.txt &&
git add story.txt &&
git commit -m "Add story.txt"
# Switched to a new branch &#39;story&#39;
# [story eb996b8] Add story.txt
# 1 file changed, 1 insertion(+)
# create mode 100644 story.txt
登入後複製

現在,我們回到主分支並添加更改:

git checkout main &&
echo "Other changes" >> changes.txt &&
git add changes.txt &&
git commit -m "Add changes.txt"
登入後複製

重置我們在main到story分支所做的更改:

git checkout story &&
git rebase main
# Successfully rebased and updated refs/heads/story.
登入後複製

可以看到在主分支建立的新檔案被加入到story 分支。

ls
# changes.txt hello.txt   story.txt
登入後複製

注意:不要rebase 別人可能使用過的分支,例如主分支。另外,請記住,在遠端版本庫上進行的每一次歷史操作都需要強制這些修改生效。

遠端儲存庫

如果你還沒有,請建立一個GitHub帳戶,登入並建立一個新的空倉庫(私人或公有)。

假設版本庫的名字是 "example",執行以下指令(改成你的使用者名稱)。

git remote add origin git@github.com:USERNAME/example.git &&
git push -u origin main
登入後複製

你可以重新整理頁面,看到主分支的檔案。要把所有本地分支推送到遠端倉庫,請運行。

git push --all origin
登入後複製

我們在GitHub上編輯一些東西:只要點擊任何文件和鉛筆圖示。新增一行你想要的任何文字,然後按 "提交修改"。

在本地運行這個命令,以獲得遠端的變化。 【推薦:Git教學

git checkout main &&
git pull
登入後複製

管理未提交的變更

如果你想儲存你的本機修改以便以後使用,你可以使用git stash。

echo "Changes" >> hello.txt &&
git stash
登入後複製

現在你可以使用以下指令來檢查、套用或放棄這些變更。

git stash list
# stash@{0}: WIP on main: 92354c8 Update changes.txt
git stash pop # 应用更改
git stash drop # 撤销修改
登入後複製

你可以使用 stash 编号,即git stash pop 0来应用一个特定的储藏库,或者git stash drop 0来撤销。

如果你想放弃所有的本地修改,只需恢复版本库到最后提交的修改,请运行。

git restore .
登入後複製

管理提交的更改

一旦你创建了一个提交,这个变化就会保存在本地的git历史中。如前所述,所有影响远程历史的修改都需要git push --force。以下所有命令都要记住这一点。

我们从编辑最后的提交信息开始。

git commit --amend # type :wq to save and close
# Press "i" to edit, "Esc" to stop editing
登入後複製

我们把一切重设到最开始怎么样?

要找到第一次提交的ID,请运行这个命令并滚动(向下箭头)到最后。

git log --abbrev-commit
# commit a07ee27
# Author: Your Name <your@email.address>
Date:   Sun Jul 11 11:47:16 2021 +0200
    Adds hello.txt
(END)
# type ":q" to close
登入後複製

现在运行这个来重置版本库,但保持所有的修改不被缓存。

git reset --soft COMMIT # e.g. a07ee27
登入後複製

与之相反,你也可以进行硬重置,用git reset --hard COMMIT来删除所有修改。还有几种其他的重置方式,你可以从git文档中了解到。

别名

大多数时候,你只需要使用少数几个命令(主要是checkout、add、commit、pull、push和merge),但有些命令可能是你想要“以防万一”的。

存储这些信息的一种方法是git aliases。要配置一个别名,只需在配置中设置它。例如,我经常使用的一个别名是git tree,它以树的形式打印出一个漂亮的历史日志。

git config --global alias.tree &#39;log --graph --decorate --pretty=oneline --abbrev-commit&#39;
# Try it with `git tree`
登入後複製

另一个有用的别名是删除所有合并的分支。

git config --global alias.clbr &#39;!git branch --merged | grep -v \* | xargs git branch -D&#39;
登入後複製

你可以看到它的前缀是"!",这允许我们使用任何命令,而不仅仅是git命令。

~完,我是刷碗智,今天礼拜六写的,要准备去刷碗了,骨的白!

▎作者:Valeria 译者:前端小智 来源:dev 原文:https://dev.to/valeriavg/master-git-in-7-minutes-gai

以上是10分鐘一步步帶你看完最常用的git指令的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

git怎麼更新代碼 git怎麼更新代碼 Apr 17, 2025 pm 04:45 PM

更新 git 代碼的步驟:檢出代碼:git clone https://github.com/username/repo.git獲取最新更改:git fetch合併更改:git merge origin/master推送更改(可選):git push origin master

git vs. github:版本控制和代碼託管 git vs. github:版本控制和代碼託管 Apr 11, 2025 am 11:33 AM

Git是版本控制系統,GitHub是基於Git的代碼託管平台。 Git用於管理代碼版本,支持本地操作;GitHub提供在線協作工具,如Issue跟踪和PullRequest。

git怎麼下載項目到本地 git怎麼下載項目到本地 Apr 17, 2025 pm 04:36 PM

要通過 Git 下載項目到本地,請按以下步驟操作:安裝 Git。導航到項目目錄。使用以下命令克隆遠程存儲庫:git clone https://github.com/username/repository-name.git

git怎么生成ssh密鑰 git怎么生成ssh密鑰 Apr 17, 2025 pm 01:36 PM

為了安全連接遠程 Git 服務器,需要生成包含公鑰和私鑰的 SSH 密鑰。生成 SSH 密鑰的步驟如下:打開終端,輸入命令 ssh-keygen -t rsa -b 4096。選擇密鑰保存位置。輸入密碼短語以保護私鑰。將公鑰複製到遠程服務器上。將私鑰妥善保存,因為它是訪問帳戶的憑據。

git怎麼查看倉庫地址 git怎麼查看倉庫地址 Apr 17, 2025 pm 01:54 PM

要查看 Git 倉庫地址,請執行以下步驟:1. 打開命令行並導航到倉庫目錄;2. 運行 "git remote -v" 命令;3. 查看輸出中的倉庫名稱及其相應的地址。

git怎麼合併代碼 git怎麼合併代碼 Apr 17, 2025 pm 04:39 PM

Git 代碼合併過程:拉取最新更改以避免衝突。切換到要合併的分支。發起合併,指定要合併的分支。解決合併衝突(如有)。暫存和提交合併,提供提交消息。

git commit怎麼用 git commit怎麼用 Apr 17, 2025 pm 03:57 PM

Git Commit 是一種命令,將文件變更記錄到 Git 存儲庫中,以保存項目當前狀態的快照。使用方法如下:添加變更到暫存區域編寫簡潔且信息豐富的提交消息保存並退出提交消息以完成提交可選:為提交添加簽名使用 git log 查看提交內容

git下載不動怎麼辦 git下載不動怎麼辦 Apr 17, 2025 pm 04:54 PM

解決 Git 下載速度慢時可採取以下步驟:檢查網絡連接,嘗試切換連接方式。優化 Git 配置:增加 POST 緩衝區大小(git config --global http.postBuffer 524288000)、降低低速限制(git config --global http.lowSpeedLimit 1000)。使用 Git 代理(如 git-proxy 或 git-lfs-proxy)。嘗試使用不同的 Git 客戶端(如 Sourcetree 或 Github Desktop)。檢查防火

See all articles