文章目录
- 一、创建版本库
- 二、修改和提交
- 三、查看提交历史
- 四、撤销
- 五、分支与标签
- 六、合并与衍合
- 七、远程操作
- 1、$ git remote -v #查看远程版本库信息
- 2、$ git remote show <remote> #查看指定远程版本库信息
- 3、$ git remote add <remote> <url> #添加远程版本库
- 4、$ git fetch <remote> #从远程库获取代码
- 5、$ git pull <remote> <branch> #下载代码及快速合并
- 6、$ git push <remote> <branch> #上传代码及快速合并
- 7、$ git push <remote><remote> :<branch/tag-name> #删除远程分支或标签
- 8、$ git push --tags #上传所有标签
一、创建版本库
1、$ git clone #克隆远程版本库
git clone
是一个用于克隆远程代码仓库到本地的 Git 命令。下面是对其使用的说明,并附上一些示例和注意事项:
使用方法:
- 打开终端或命令行界面。
- 使用
git clone
命令,后接远程代码仓库的 URL。
例如:git clone https://github.com/username/repository.git
将克隆名为 “repository” 的远程代码仓库到本地。
示例说明:
-
克隆公共仓库:
git clone https://github.com/git/git.git
这个示例将克隆 Git 的官方仓库到本地。 -
克隆私有仓库:
git clone git@github.com:username/repository.git
这个示例将克隆名为 “repository” 的私有仓库到本地。
注意事项:
- 克隆仓库时,确保本地没有同名的目录,否则会导致克隆失败。
- 如果仓库需要身份验证,使用 SSH 协议克隆时需要配置和添加 SSH 密钥。
- 克隆仓库后,会自动创建一个与远程仓库同名的本地分支,并自动切换到该分支。
使用 git clone
命令可以方便地将远程代码仓库克隆到本地,以便进行代码的查看、修改和提交等操作。
2、$ git init #初始化本地版本库
git init
是一个用于在本地目录中初始化 Git 仓库的命令。下面是对其使用的说明,并附上一些示例和注意事项:
使用方法:
- 打开终端或命令行界面。
- 进入要初始化为 Git 仓库的目录。
- 使用
git init
命令初始化 Git 仓库。
例如:git init
将在当前目录中初始化一个新的 Git 仓库。
示例说明:
- 初始化新仓库:
git init
这个示例将在当前目录中初始化一个新的 Git 仓库。
注意事项:
- 在初始化之前,确保当前目录不是已经存在的 Git 仓库。
- 初始化后,会在当前目录中生成一个名为 “.git” 的隐藏文件夹,该文件夹包含了 Git 仓库的相关信息。
- 初始化后,可以使用其他 Git 命令来管理和操作仓库,如添加文件、提交更改、创建分支等。
使用 git init
命令可以快速地将一个目录初始化为 Git 仓库,以便开始进行版本控制和代码管理等操作。
二、修改和提交
1、$ git status #查看状态
git status
是一个用于查看 Git 仓库当前状态的命令。下面是对其使用的说明,并附上一些示例和注意事项:
使用方法:
- 打开终端或命令行界面。
- 进入已经初始化为 Git 仓库的目录。
- 使用
git status
命令查看当前仓库的状态。
例如:git status
将显示当前分支的状态、已修改但未提交的文件以及其他相关信息。
示例说明:
- 查看仓库状态:
git status
这个示例将显示当前分支的状态,包括已修改但未提交的文件、已暂存的文件以及其他相关信息。
注意事项:
git status
命令可以帮助您了解当前仓库的状态,包括文件的修改、暂存和提交情况。- 可以使用
git status -s
或git status --short
命令来查看简化的仓库状态信息。 - 如果
git status
命令显示有文件被修改但未暂存或提交,可以使用其他 Git 命令(如git add
和git commit
)来进行文件的暂存和提交操作。
使用 git status
命令可以帮助您了解当前仓库的状态,以便进行合适的版本控制操作。
2、$ git diff #查看变更内容
git diff
是一个用于比较文件之间差异的 Git 命令。下面是对其使用的说明,并附上一些示例和注意事项:
使用方法:
- 打开终端或命令行界面。
- 进入已经初始化为 Git 仓库的目录。
- 使用
git diff
命令来比较文件之间的差异。
例如:git diff
将显示工作区中与最新提交版本之间的差异。
示例说明:
-
比较工作区和最新提交版本之间的差异:
git diff
这个示例将显示工作区中与最新提交版本之间的差异,包括已修改但未暂存的文件的变化。 -
比较两个提交版本之间的差异:
git diff commit1 commit2
这个示例将显示两个提交版本之间的差异,可以使用具体的提交哈希值、分支名或标签名来指定提交版本。
注意事项:
git diff
命令可以帮助您比较文件之间的差异,包括工作区与最新提交版本之间的差异,或者两个提交版本之间的差异。- 可以使用不同的选项来对比不同的文件版本,如
git diff --cached
来比较已暂存的文件与最新提交版本之间的差异。 git diff
命令会以行的方式显示差异,并使用-
表示被删除的行,+
表示新增的行。
使用 git diff
命令可以帮助您了解文件之间的差异,以便进行合适的版本控制操作。
3、$ git add . #跟踪所有改动过的文件
git add .
是一个用于将工作区中的所有变更添加到暂存区的 Git 命令。下面是对其使用的说明,并附上一些示例和注意事项:
使用方法:
- 打开终端或命令行界面。
- 进入已经初始化为 Git 仓库的目录。
- 使用
git add .
命令将所有变更添加到暂存区。
这个命令会将工作区中所有已修改的文件和新创建的文件添加到暂存区。
示例说明:
-
将所有变更添加到暂存区:
git add .
这个示例将会将工作区中所有已修改的文件和新创建的文件添加到暂存区。 -
将指定文件添加到暂存区:
git add file1.txt file2.txt
这个示例将会将指定的文件file1.txt
和file2.txt
添加到暂存区。
注意事项:
git add .
命令会将当前目录下所有文件的变更添加到暂存区,包括已修改的文件和新创建的文件。- 使用
git add
命令之前,确保您已经在正确的目录下,并且已经初始化为 Git 仓库。 - 添加到暂存区后,可以使用
git status
命令来查看暂存区中的变更情况。
使用 git add .
命令可以将工作区中的变更添加到暂存区,为后续的提交操作做准备。
4、$ git add #跟踪指定的文件
git add <file>
是一个用于将指定文件添加到暂存区的 Git 命令。下面是对其使用的说明,并附上一些示例和注意事项:
使用方法:
- 打开终端或命令行界面。
- 进入已经初始化为 Git 仓库的目录。
- 使用
git add <file>
命令将指定文件添加到暂存区。
这个命令会将指定的文件添加到暂存区,以便在后续的提交操作中包含这些文件。
示例说明:
-
将单个文件添加到暂存区:
git add file1.txt
这个示例将会将名为file1.txt
的文件添加到暂存区。 -
将多个文件添加到暂存区:
git add file1.txt file2.txt
这个示例将会将名为file1.txt
和file2.txt
的文件同时添加到暂存区。
注意事项:
- 使用
git add <file>
命令之前,确保您已经在正确的目录下,并且已经初始化为 Git 仓库。 - 添加到暂存区后,可以使用
git status
命令来查看暂存区中的变更情况。 - 如果要添加整个目录下的所有文件,可以使用
git add .
命令。
使用 git add <file>
命令可以将指定文件添加到暂存区,为后续的提交操作做准备。
5、$ git mv #文件改名
git mv <old> <new>
是一个用于重命名或移动文件的 Git 命令。下面是对其使用的说明,并附上一些示例和注意事项:
使用方法:
- 打开终端或命令行界面。
- 进入已经初始化为 Git 仓库的目录。
- 使用
git mv <old> <new>
命令来重命名或移动文件。
这个命令会将<old>
文件重命名或移动为<new>
。
示例说明:
-
重命名文件:
git mv file1.txt file1_new.txt
这个示例将会将名为file1.txt
的文件重命名为file1_new.txt
。 -
移动文件到新的目录:
git mv file1.txt dir1/file1.txt
这个示例将会将名为file1.txt
的文件移动到目录dir1
中,并保持文件名不变。
注意事项:
- 使用
git mv <old> <new>
命令之前,确保您已经在正确的目录下,并且已经初始化为 Git 仓库。 - 重命名或移动文件后,可以使用
git status
命令来查看文件的状态变化。 - Git 会在重命名或移动文件时自动跟踪这些变化,并将其作为单个操作添加到暂存区。
使用 git mv <old> <new>
命令可以方便地重命名或移动文件,并使 Git 能够正确地跟踪这些变化。
6、$ git rm #删除文件
git rm <file>
是一个用于从 Git 仓库中删除文件的命令。下面是对其使用的说明,并附上一些示例和注意事项:
使用方法:
- 打开终端或命令行界面。
- 进入已经初始化为 Git 仓库的目录。
- 使用
git rm <file>
命令来删除指定的文件。
这个命令会将<file>
文件从 Git 仓库中删除,并将删除操作添加到暂存区。
示例说明:
-
删除文件:
git rm file1.txt
这个示例将会从 Git 仓库中删除名为file1.txt
的文件。 -
删除目录下的文件:
git rm -r dir1
这个示例将会递归地删除名为dir1
目录下的所有文件和子目录。
注意事项:
- 使用
git rm <file>
命令之前,确保您已经在正确的目录下,并且已经初始化为 Git 仓库。 - 删除文件后,可以使用
git status
命令来查看文件的状态变化。 - 删除的文件会被添加到暂存区,需要使用
git commit
命令提交更改到仓库。
使用 git rm <file>
命令可以方便地从 Git 仓库中删除文件,并使 Git 能够正确地跟踪这些变化。
7、$ git tm --cached #停止跟踪文件但不删除
对不起,我之前的回答中有一个错误。正确的命令应该是 git rm --cached <file>
,而不是 git tm --cached <file>
。非常抱歉给您带来困扰。以下是对 git rm --cached <file>
命令的使用说明和示例:
使用方法:
- 打开终端或命令行界面。
- 进入已经初始化为 Git 仓库的目录。
- 使用
git rm --cached <file>
命令来从暂存区中删除指定的文件。
这个命令会将<file>
文件从暂存区中删除,但保留在工作目录中。
示例说明:
-
从暂存区中删除文件:
git rm --cached file1.txt
这个示例将会从暂存区中删除名为file1.txt
的文件,但保留在工作目录中。 -
从暂存区中删除目录下的文件:
git rm --cached -r dir1
这个示例将会递归地从暂存区中删除名为dir1
目录下的所有文件和子目录,但保留在工作目录中。
注意事项:
- 使用
git rm --cached <file>
命令之前,确保您已经在正确的目录下,并且已经初始化为 Git 仓库。 - 删除文件后,可以使用
git status
命令来查看文件的状态变化。 - 删除的文件会从暂存区中删除,但仍然保留在工作目录中。
使用 git rm --cached <file>
命令可以方便地从暂存区中删除文件,但保留在工作目录中,适用于不再需要跟踪的文件。
8、$ git commit -m “commit message” #提交所有更新过的文件
git commit -m "commit message"
是 Git 中用于提交代码修改的命令,用于将暂存区中的文件变更提交到本地仓库。以下是该命令的使用说明和示例:
使用方法:
- 打开终端或命令行界面。
- 进入已经初始化为 Git 仓库的目录。
- 使用
git add <file>
命令将需要提交的文件添加到暂存区。 - 使用
git commit -m "commit message"
命令提交暂存区中的文件变更到本地仓库,并添加一条提交消息。
示例说明:
-
提交单个文件的修改:
git commit -m "Update README.md"
这个示例将会提交暂存区中的文件修改到本地仓库,并添加一条提交消息为 “Update README.md”。 -
提交多个文件的修改:
git commit -m "Fix bugs in index.html and style.css"
这个示例将会提交暂存区中的多个文件修改到本地仓库,并添加一条提交消息为 “Fix bugs in index.html and style.css”。
注意事项:
- 提交消息应该简明扼要地描述本次提交的内容,便于其他开发者理解。
- 提交前需要确保已经将需要提交的文件添加到暂存区,可以使用
git add <file>
命令进行添加。 - 可以使用
git status
命令查看当前的文件状态和暂存区的变更。
通过 git commit -m "commit message"
命令,可以方便地将暂存区中的文件变更提交到本地仓库,并记录相关的提交消息。
9、$ git commit --amend #修改最后一次提交
git commit --amend
是 Git 中用于修改最近一次提交的命令。它允许你在不创建新的提交记录的情况下,修改最后一次提交的内容。以下是该命令的使用说明和示例:
使用方法:
- 打开终端或命令行界面。
- 进入已经初始化为 Git 仓库的目录。
- 使用
git add <file>
命令将需要修改的文件添加到暂存区。 - 使用
git commit --amend
命令修改最后一次提交。
示例说明:
-
修改最后一次提交的提交消息:
git commit --amend -m "Updated README.md"
这个示例将会修改最后一次提交的提交消息为 “Updated README.md”。 -
添加遗漏的文件到最后一次提交:
git commit --amend
这个示例将会将遗漏的文件添加到最后一次提交中,不需要修改提交消息。
注意事项:
git commit --amend
命令会修改最近一次的提交记录,所以请确保你只修改了最后一次提交的内容。- 在使用
git commit --amend
命令之前,确保你已经将需要修改的文件添加到暂存区,可以使用git add <file>
命令进行添加。 - 修改最后一次提交可能会改变提交的哈希值,因此在团队协作或者已经推送到远程仓库的情况下,慎用该命令。
通过 git commit --amend
命令,你可以方便地修改最后一次提交的内容,包括提交消息和提交的文件。
三、查看提交历史
1、$ git log #查看提交历史
git log
是 Git 中用于查看提交历史的命令。它可以显示当前分支的提交记录,包括提交的哈希值、作者、提交日期、提交消息等信息。以下是 git log
命令的使用说明和示例:
使用方法:
- 打开终端或命令行界面。
- 进入已经初始化为 Git 仓库的目录。
- 输入
git log
命令,即可查看提交历史。
示例说明:
-
查看完整的提交历史记录:
git log
这个示例将会显示当前分支的所有提交记录,按照时间顺序从最新到最旧排列。 -
限制显示的提交数量:
git log -n 5
这个示例将会显示当前分支的最新的 5 条提交记录。 -
查看某个特定文件的提交历史:
git log <file>
这个示例将会显示某个特定文件的提交历史记录,包括该文件的修改记录。
注意事项:
git log
命令默认以时间倒序显示提交记录,最新的提交在最上面。- 可以使用不同的选项和参数来定制
git log
命令的输出,例如限制提交数量、指定日期范围、显示某个作者的提交等。 - 可以使用
git log --oneline
命令来以简洁的方式显示提交记录,只显示提交的哈希值和提交消息。
通过 git log
命令,你可以方便地查看和分析 Git 仓库的提交历史,了解每次提交的详细信息。
2、$ git log -p #查看指定文件的提交历史
git log -p
是 Git 中用于显示提交历史并显示每个提交的详细更改内容(即补丁)的命令。它会显示每个提交的元数据信息以及该提交所引入的更改。
使用方法:
- 打开终端或命令行界面。
- 进入已经初始化为 Git 仓库的目录。
- 输入
git log -p
命令,即可查看提交历史和更改内容。
示例说明:
-
查看完整的提交历史和更改内容:
git log -p
这个示例将会显示当前分支的所有提交记录,并显示每个提交所引入的更改内容。 -
限制显示的提交数量和更改内容:
git log -p -n 5
这个示例将会显示当前分支的最新的 5 条提交记录,并显示每个提交所引入的更改内容。 -
查看某个特定文件的提交历史和更改内容:
git log -p <file>
这个示例将会显示某个特定文件的提交历史记录,并显示该文件每个提交所引入的更改内容。
注意事项:
git log -p
命令会显示每个提交所引入的更改内容,包括新增、修改和删除的行。- 可以使用不同的选项和参数来定制
git log -p
命令的输出,例如限制提交数量、指定日期范围、显示某个作者的提交等。 - 更改内容以 diff 格式显示,以表示每个提交所引入的具体更改。
通过 git log -p
命令,你可以查看提交历史并了解每个提交所引入的具体更改内容,有助于代码审查和问题排查等工作。
3、$ git blame #以列表方式查看指定文件的提交历史
git blame
是 Git 中用于显示文件每一行的修改历史和最后一次修改的提交信息的命令。它可以帮助你追溯每一行代码的修改者和修改时间。
使用方法:
- 打开终端或命令行界面。
- 进入已经初始化为 Git 仓库的目录。
- 输入
git blame <file>
命令,即可查看文件每一行的修改历史和最后一次修改的提交信息。
示例说明:
假设有一个名为 example.txt
的文件,我们来演示 git blame
命令的使用方法。
-
查看文件每一行的修改历史和最后一次修改的提交信息:
git blame example.txt
这个示例将会显示example.txt
文件的每一行代码,以及每一行代码最后一次修改的提交信息。 -
限制显示的行数范围:
git blame -L 10,20 example.txt
这个示例将会显示example.txt
文件的第 10 行到第 20 行的代码,以及每一行代码最后一次修改的提交信息。
注意事项:
git blame
命令用于查看文件每一行的修改历史,可以帮助你了解代码的演化和追溯问题的责任人。git blame
命令的输出结果中会显示每一行代码的 SHA-1 标识符、作者、修改时间和具体代码内容。- 可以结合其他选项和参数来定制
git blame
命令的输出,例如-L
选项限制显示的行数范围、--since
选项指定起始时间等。
通过 git blame
命令,你可以追溯每一行代码的修改历史和最后一次修改的提交信息,有助于代码审查、问题追踪和团队协作等工作。
四、撤销
1、$ git reset --hard HEAD #撤销工作目录中所有未提交文件的修改内容
git reset --hard HEAD
是一个 Git 命令,用于将当前分支的 HEAD 指针和工作目录回退到最近的一次提交。
使用方法:
- 打开终端或命令行界面。
- 进入已经初始化为 Git 仓库的目录。
- 输入
git reset --hard HEAD
命令,即可将当前分支回退到最近的一次提交,并清除工作目录中未提交的修改。
示例说明:
假设当前所在的分支是 master
,我们来演示 git reset --hard HEAD
命令的使用方法。
-
回退到最近的一次提交:
git reset --hard HEAD
这个示例将会将当前分支master
的 HEAD 指针和工作目录都回退到最近的一次提交。 -
回退到指定提交:
git reset --hard <commit>
这个示例将会将当前分支master
的 HEAD 指针和工作目录都回退到指定的提交,其中<commit>
是提交的哈希值或分支名。
注意事项:
git reset --hard HEAD
是一个危险的命令,它会丢弃工作目录中未提交的修改,慎用。- 使用
git reset --hard
命令后,回退的提交及其之后的提交将会被丢弃,无法恢复,请确保备份重要的修改。 - 如果需要保留回退的提交,可以使用
git reflog
命令查看历史操作记录,并使用相应的哈希值进行恢复。
通过 git reset --hard HEAD
命令,你可以回退当前分支到最近的一次提交,并清除未提交的修改,适用于撤销错误的更改或重置分支状态等情况。
2、$ git checkout HEAD #撤销指定的未提交文件的修改内容
git checkout HEAD
是一个 Git 命令,用于将当前分支的 HEAD 指针移动到最近的一次提交,并更新工作目录中的文件。
使用方法:
- 打开终端或命令行界面。
- 进入已经初始化为 Git 仓库的目录。
- 输入
git checkout HEAD
命令,即可将当前分支的 HEAD 指针移动到最近的一次提交,并更新工作目录中的文件。
示例说明:
假设当前所在的分支是 master
,我们来演示 git checkout HEAD
命令的使用方法。
- 回退到最近的一次提交:
git checkout HEAD
这个示例将会将当前分支master
的 HEAD 指针移动到最近的一次提交,并更新工作目录中的文件。
注意事项:
git checkout HEAD
会丢弃工作目录中未提交的修改,请确保备份重要的修改。- 使用
git checkout HEAD
命令后,回退的提交及其之后的提交将会被丢弃,无法恢复,请谨慎使用。 - 如果需要保留回退的提交,可以使用
git reflog
命令查看历史操作记录,并使用相应的哈希值进行恢复。
通过 git checkout HEAD
命令,你可以将当前分支的 HEAD 指针移动到最近的一次提交,并更新工作目录中的文件,适用于撤销错误的更改或回退分支状态等情况。
3、$ git revert #撤销指定的提交
git revert
是一个 Git 命令,用于撤销指定提交的更改,并创建一个新的提交来记录这个撤销操作。
使用方法:
- 打开终端或命令行界面。
- 进入已经初始化为 Git 仓库的目录。
- 输入
git revert <commit>
命令,其中<commit>
是要撤销的提交的哈希值或引用,如分支名或标签名。
示例说明:
假设我们有一个提交历史如下:A -> B -> C -> D,现在要撤销提交 C。
- 撤销提交 C:
git revert C
这个示例将会撤销提交 C 所做的更改,并创建一个新的提交 E 来记录这个撤销操作。
注意事项:
git revert
撤销的是指定提交的更改,而不是删除提交。因此,会创建一个新的提交来反转指定提交的更改。- 撤销的提交及其之后的提交会保留在提交历史中,不会被删除,可以通过查看提交历史或使用
git reflog
命令来查看和恢复。 - 撤销操作可能会引入新的冲突,需要手动解决冲突后才能完成撤销操作。
通过 git revert
命令,你可以撤销指定提交的更改,并将撤销操作记录为一个新的提交,适用于修复错误或取消某个提交的更改。
五、分支与标签
1、$ git branch #显示所有本地分支
git branch
是一个 Git 命令,用于管理和查看分支。
使用方法:
- 打开终端或命令行界面。
- 进入已经初始化为 Git 仓库的目录。
- 输入
git branch
命令。
示例说明:
假设我们有一个 Git 仓库,初始时只有一个主分支(通常是 master
分支)。
-
查看分支:
git branch
这个示例将会列出当前仓库中的所有分支,当前分支会用*
标记。 -
创建分支:
git branch <branch-name>
这个示例将会创建一个新的分支,名称为<branch-name>
。 -
切换分支:
git checkout <branch-name>
这个示例将会切换到指定的分支,名称为<branch-name>
。 -
创建并切换分支:
git checkout -b <branch-name>
这个示例将会创建一个新的分支,并立即切换到该分支,名称为<branch-name>
。
注意事项:
- 分支操作不会删除任何提交,它们只是在提交历史中创建了一个新的指针。
- 在切换分支之前,请确保当前工作目录中的更改已经提交或保存,以免丢失更改。
- 分支操作可能会引入冲突,需要手动解决冲突后才能完成分支切换或合并操作。
通过 git branch
命令,你可以管理和查看 Git 仓库中的分支,包括创建、切换和列出分支等操作。
2、$ git checkout <branch/tag> #切换到指定分支或标签
git checkout
是一个 Git 命令,用于切换到指定的分支或标签。
使用方法:
- 打开终端或命令行界面。
- 进入已经初始化为 Git 仓库的目录。
- 输入
git checkout <branch/tag>
命令。
示例说明:
假设我们有一个 Git 仓库,其中有两个分支 feature
和 bugfix
,以及一个标签 v1.0
。
-
切换到分支:
git checkout feature
这个示例将会切换到名为feature
的分支。 -
切换到标签:
git checkout v1.0
这个示例将会切换到名为v1.0
的标签。
注意事项:
- 在切换分支或标签之前,请确保当前工作目录中的更改已经提交或保存,以免丢失更改。
- 如果切换到一个分支,Git 会将工作目录中的文件替换为该分支的最新版本。
- 如果切换到一个标签,Git 会将工作目录中的文件替换为与该标签关联的提交版本。
通过 git checkout
命令,你可以切换到指定的分支或标签,以便在 Git 仓库中进行不同的开发或查看不同的版本。
3、$ git branch #创建新分支
git branch
是一个 Git 命令,用于查看、创建、删除和切换分支。
使用方法:
- 打开终端或命令行界面。
- 进入已经初始化为 Git 仓库的目录。
- 输入
git branch
命令。
示例说明:
假设我们有一个 Git 仓库,其中已经存在两个分支 feature
和 bugfix
。
-
查看分支:
git branch
这个示例将会列出所有的分支,并在当前分支前面添加一个*
符号。 -
创建分支:
git branch new-branch
这个示例将会创建一个名为new-branch
的新分支。 -
删除分支:
git branch -d bugfix
这个示例将会删除名为bugfix
的分支。 -
切换分支:
git checkout feature
这个示例将会切换到名为feature
的分支。
注意事项:
- 在创建和删除分支之前,请确保当前工作目录中的更改已经提交或保存,以免丢失更改。
- 删除分支时,确保你不会删除正在工作中的分支,或者将要删除的分支已经合并到其他分支中。
- 切换分支时,确保你已经提交或保存了当前分支上的更改,以免丢失更改。
通过 git branch
命令,你可以查看、创建、删除和切换分支,以便在 Git 仓库中进行不同的开发和版本控制。
4、$ git branch -d #删除本地分支
git branch -d
是一个用于删除本地分支的 Git 命令。它用于删除已合并到主分支的本地分支。
使用方法:
- 打开命令行终端。
- 进入你的 Git 仓库所在的目录。
- 运行以下命令:
git branch -d <branch-name>
,其中<branch-name>
是你要删除的分支的名称。
注意事项:
- 只能删除已经合并到主分支的本地分支。如果分支还没有合并,使用
-d
选项会导致删除失败。可以使用-D
选项来强制删除未合并的分支,但要谨慎使用。 - 在删除分支之前,确保你已经在其他分支中保存了所需的更改和提交。
- 删除分支是一个不可逆的操作,请确保你真的想要删除该分支。
示例:
假设你的 Git 仓库中有一个名为 “feature-branch” 的本地分支,你已经将其合并到主分支中,现在想要删除它。你可以运行以下命令来删除该分支:
git branch -d feature-branch
这将删除名为 “feature-branch” 的本地分支。
5、$ git tag #列出所有本地标签
git tag
是一个用于管理 Git 标签的命令。它可以用于创建、查看、删除和操作标签。
使用方法:
- 打开命令行终端。
- 进入你的 Git 仓库所在的目录。
- 运行以下命令来查看已存在的标签:
git tag
。
创建标签:
-
创建轻量标签(Lightweight Tag):
git tag <tag-name>
示例:git tag v1.0.0
-
创建附注标签(Annotated Tag):
git tag -a <tag-name> -m "<tag-message>"
示例:git tag -a v1.0.0 -m "Release version 1.0.0"
删除标签:
-
删除本地标签:
git tag -d <tag-name>
示例:git tag -d v1.0.0
-
删除远程标签:
git push origin :refs/tags/<tag-name>
示例:git push origin :refs/tags/v1.0.0
注意事项:
- 标签是指向特定提交的引用,用于标记重要的版本或里程碑。因此,在创建标签之前,请确保你在正确的提交上。
- 标签默认只在本地存在,如果需要将标签推送到远程仓库,需要使用
git push
命令。
示例:
假设你的 Git 仓库中有一个名为 “v1.0.0” 的标签,你可以运行以下命令来查看标签信息:
git tag
这将显示所有已存在的标签。
6、$ git tag #基于最新提交创建标签
git tag
是一个用于管理 Git 标签的命令。它可以用于创建、查看、删除和操作标签。
使用方法:
- 打开命令行终端。
- 进入你的 Git 仓库所在的目录。
- 运行以下命令来查看已存在的标签:
git tag
。
创建标签:
-
创建轻量标签(Lightweight Tag):
git tag <tag-name>
示例:git tag v1.0.0
-
创建附注标签(Annotated Tag):
git tag -a <tag-name> -m "<tag-message>"
示例:git tag -a v1.0.0 -m "发布版本 1.0.0"
删除标签:
-
删除本地标签:
git tag -d <tag-name>
示例:git tag -d v1.0.0
-
删除远程标签:
git push origin :refs/tags/<tag-name>
示例:git push origin :refs/tags/v1.0.0
注意事项:
- 标签是指向特定提交的引用,用于标记重要的版本或里程碑。因此,在创建标签之前,请确保你在正确的提交上。
- 标签默认只在本地存在,如果需要将标签推送到远程仓库,需要使用
git push
命令。
示例:
假设你的 Git 仓库中有一个名为 “v1.0.0” 的标签,你可以运行以下命令来查看标签信息:
git tag
这将显示所有已存在的标签。
7、$ git tag -d #删除标签
git tag -d
是一个用于删除 Git 标签的命令。它用于删除本地仓库中的指定标签。
使用方法:
- 打开命令行终端。
- 进入你的 Git 仓库所在的目录。
- 运行以下命令来删除指定的标签:
git tag -d <tag-name>
。
注意事项:
- 删除标签是一个永久性的操作,请谨慎使用,确保你真的要删除该标签。
- 删除标签只会影响本地仓库,不会影响远程仓库。如果需要删除远程仓库中的标签,还需要运行额外的命令。
示例:
假设你的 Git 仓库中有一个名为 “v1.0.0” 的标签,你可以运行以下命令来删除该标签:
git tag -d v1.0.0
这将删除本地仓库中的 “v1.0.0” 标签。
六、合并与衍合
1、$ git merge #合并指定分支到当前分支
git merge
是一个用于合并分支的 Git 命令。它用于将一个分支的更改合并到当前分支中。
使用方法:
- 打开命令行终端。
- 进入你的 Git 仓库所在的目录。
- 确保你当前位于接收更改的目标分支。
- 运行以下命令来合并指定的分支:
git merge <branch-name>
。
注意事项:
- 在执行合并之前,确认你已经提交并推送了当前分支的更改,以免出现冲突。
- 合并分支可能会导致代码冲突,需要手动解决冲突后才能完成合并。
- 在合并分支之前,建议先进行代码审查和测试,确保合并的更改不会引入错误或破坏代码功能。
示例:
假设你有一个名为 “feature-branch” 的分支,你可以运行以下命令来将该分支的更改合并到当前分支中:
git merge feature-branch
这将把 “feature-branch” 分支的更改合并到当前所在的分支中。
需要注意的是,合并分支是一个重要的操作,请确保在执行合并之前了解当前分支和目标分支的状态,并谨慎处理可能出现的冲突。
2、$ git rebase #衍合指定分支到当前分支
git rebase
是一个用于合并分支的 Git 命令。它允许将一个分支的更改应用到另一个分支上,并且可以修改提交历史。
使用方法:
- 打开命令行终端。
- 进入你的 Git 仓库所在的目录。
- 确保你当前位于要接受更改的目标分支。
- 运行以下命令来进行 rebase 操作:
git rebase <branch-name>
。
注意事项:
- 在执行 rebase 之前,确认你已经提交并推送了当前分支的更改,以免出现冲突。
- rebase 可能会导致代码冲突,需要手动解决冲突后才能完成操作。
- rebase 操作会修改提交历史,如果你的分支已经被其他人使用或共享,请谨慎使用。
示例:
假设你有一个名为 “feature-branch” 的分支,你可以运行以下命令来将该分支的更改应用到当前所在的分支上:
git rebase feature-branch
这将把 “feature-branch” 分支的更改应用到当前分支上,并且修改提交历史。
需要注意的是,rebase 是一个强大的操作,请在执行之前了解其影响,并确保在合适的情况下使用它。
七、远程操作
1、$ git remote -v #查看远程版本库信息
git remote -v
是一个用于查看远程仓库信息的 Git 命令。它可以显示当前仓库配置的远程仓库的名称和对应的 URL。
使用方法:
- 打开命令行终端。
- 进入你的 Git 仓库所在的目录。
- 运行以下命令来查看远程仓库信息:
git remote -v
。
该命令会列出当前仓库配置的远程仓库的名称和对应的 URL。其中, -v
参数表示显示详细信息,包括远程仓库的 URL。
注意事项:
git remote -v
命令只能查看当前仓库的远程仓库信息,而不能添加或删除远程仓库。- 如果你想添加或删除远程仓库,请使用其他相应的 Git 命令,如
git remote add
和git remote remove
。
示例:
假设你有一个名为 “origin” 的远程仓库,你可以运行以下命令来查看该远程仓库的 URL:
git remote -v
这将显示当前仓库配置的远程仓库的名称和对应的 URL。
2、$ git remote show #查看指定远程版本库信息
git remote show
是一个用于查看远程仓库详细信息的 Git 命令。它可以显示远程仓库的 URL、分支信息、上游跟踪分支等。
使用方法:
- 打开命令行终端。
- 进入你的 Git 仓库所在的目录。
- 运行以下命令来查看远程仓库详细信息:
git remote show <remote>
,其中<remote>
是远程仓库的名称。
该命令会显示远程仓库的 URL、分支信息、上游跟踪分支等。
注意事项:
<remote>
参数是可选的,如果不指定,则会显示所有远程仓库的详细信息。git remote show
命令还可以显示本地分支与远程分支的对应关系。- 如果想查看更详细的信息,可以结合其他 Git 命令,如
git branch -a
和git log
等。
示例:
假设你有一个名为 “origin” 的远程仓库,你可以运行以下命令来查看该远程仓库的详细信息:
git remote show origin
这将显示远程仓库 “origin” 的详细信息,包括 URL、分支信息和上游跟踪分支等。
3、$ git remote add #添加远程版本库
git remote add
是一个用于添加远程仓库的 Git 命令。它允许你将远程仓库与本地仓库进行关联,以便进行远程操作和数据同步。
使用方法:
- 打开命令行终端。
- 进入你的 Git 仓库所在的目录。
- 运行以下命令来添加远程仓库:
git remote add <remote> <url>
,其中<remote>
是远程仓库的名称,<url>
是远程仓库的 URL。
该命令会将远程仓库与本地仓库进行关联,并分配一个名称给远程仓库。
注意事项:
<remote>
参数是自定义的远程仓库名称,可以根据需要进行命名,通常使用 “origin” 作为默认名称。<url>
参数是远程仓库的 URL,可以是 HTTPS 或 SSH 协议的链接。- 添加远程仓库后,可以使用其他 Git 命令(如
git push
和git fetch
)与远程仓库进行交互。
示例:
假设你要将一个名为 “example” 的远程仓库与你的本地仓库关联,你可以运行以下命令来添加远程仓库:
git remote add example https://github.com/example/example.git
这将将远程仓库 “example” 与你的本地仓库关联起来,使用给定的 URL。
4、$ git fetch #从远程库获取代码
git fetch
是一个用于从远程仓库获取最新代码和提交历史的 Git 命令。它会将远程仓库的更新内容下载到本地仓库,但不会自动合并或修改当前工作目录中的文件。
使用方法:
- 打开命令行终端。
- 进入你的 Git 仓库所在的目录。
- 运行以下命令来执行
git fetch
:git fetch <remote>
,其中<remote>
是远程仓库的名称。
注意事项:
<remote>
参数是远程仓库的名称,通常使用 “origin” 作为默认名称。git fetch
只会将远程仓库的更新内容下载到本地仓库,并不会自动合并或修改当前工作目录中的文件。- 如果想要将远程仓库的更新内容合并到当前分支,可以使用
git merge
或git pull
命令。
示例:
假设你要从远程仓库 “origin” 获取最新的代码和提交历史,你可以运行以下命令来执行 git fetch
:
git fetch origin
这将从远程仓库 “origin” 获取最新的代码和提交历史。
5、$ git pull #下载代码及快速合并
git pull
是一个用于从远程仓库获取最新代码并合并到当前分支的 Git 命令。它会自动下载远程仓库的更新内容,并尝试将其合并到当前分支。
使用方法:
- 打开命令行终端。
- 进入你的 Git 仓库所在的目录。
- 运行以下命令来执行
git pull
:git pull <remote> <branch>
,其中<remote>
是远程仓库的名称,<branch>
是要拉取更新的分支名称。
注意事项:
<remote>
参数是远程仓库的名称,通常使用 “origin” 作为默认名称。<branch>
参数是要拉取更新的分支名称,默认为当前所在的分支。- 在执行
git pull
之前,确保你的工作目录中没有未提交的修改,否则可能会导致合并冲突。
示例:
假设你要从远程仓库 “origin” 的 “main” 分支获取最新的代码并合并到当前分支,你可以运行以下命令来执行 git pull
:
git pull origin main
这将从远程仓库 “origin” 的 “main” 分支获取最新的代码并合并到当前分支。
6、$ git push #上传代码及快速合并
git push
是一个用于将本地代码推送到远程仓库的 Git 命令。它会将本地分支的提交推送到指定的远程仓库和分支。
使用方法:
- 打开命令行终端。
- 进入你的 Git 仓库所在的目录。
- 运行以下命令来执行
git push
:git push <remote> <branch>
,其中<remote>
是远程仓库的名称,<branch>
是要推送的本地分支名称。
注意事项:
<remote>
参数是远程仓库的名称,通常使用 “origin” 作为默认名称。<branch>
参数是要推送的本地分支名称,默认为当前所在的分支。- 在执行
git push
之前,确保你的本地分支和远程分支之间没有冲突,否则可能会导致推送失败。
示例:
假设你要将当前分支的提交推送到远程仓库 “origin” 的 “main” 分支,你可以运行以下命令来执行 git push
:
git push origin main
这将把当前分支的提交推送到远程仓库 “origin” 的 “main” 分支。
7、$ git push :<branch/tag-name> #删除远程分支或标签
git push <remote> :<branch/tag-name>
是一个用于删除远程分支或标签的 Git 命令。它会将一个空的分支或标签推送到指定的远程仓库,从而达到删除的效果。
使用方法:
- 打开命令行终端。
- 进入你的 Git 仓库所在的目录。
- 运行以下命令来执行
git push <remote> :<branch/tag-name>
,其中<remote>
是远程仓库的名称,<branch/tag-name>
是要删除的分支或标签名称。
注意事项:
<remote>
参数是远程仓库的名称,通常使用 “origin” 作为默认名称。:<branch/tag-name>
是一个空的分支或标签名称,通过将空的分支或标签推送到远程仓库,达到删除的效果。
示例:
假设你要删除远程仓库 “origin” 的 “feature” 分支,你可以运行以下命令来执行 git push
:
git push origin :feature
这将删除远程仓库 “origin” 的 “feature” 分支。
8、$ git push --tags #上传所有标签
git push --tags
是一个用于将本地所有标签推送到远程仓库的 Git 命令。它会将本地的所有标签(tags)推送到远程仓库,使得远程仓库与本地仓库的标签保持一致。
使用方法:
- 打开命令行终端。
- 进入你的 Git 仓库所在的目录。
- 运行以下命令来执行
git push --tags
。
注意事项:
- 在执行
git push --tags
前,请确保你已经在本地创建了需要推送的标签。 - 标签通常用于标识项目中的重要版本或里程碑。
示例:
假设你在本地仓库创建了一些标签,你可以运行以下命令来执行 git push --tags
:
git push --tags
这将把本地的所有标签推送到远程仓库。
请注意, git push --tags
只会推送标签,不会推送分支。如果你需要推送分支,可以使用 git push
命令。