〇、前言
在软件开发的世界里,Git 是一款广泛使用的分布式版本控制系统。它的众多命令犹如工具包中的各式工具,帮助开发者高效管理代码版本、协作开发。本文将详细介绍 Git 中常用命令,让你能更好地驾驭 Git。
一、仓库初始化与克隆
- git init- 作用:在本地创建一个新的空Git仓库。这个命令会在当前目录下创建一个.git隐藏文件夹,用于存储仓库的元数据(如版本历史、分支信息等)。- 示例:如果要在一个新的项目目录下创建Git仓库,可以进入该目录后执行
git init。 - git clone [repository - url]- 作用:从远程Git仓库(如GitHub、GitLab等)克隆一个副本到本地。它会自动下载仓库中的所有文件、版本历史等信息。- 示例:要克隆一个名为
my - project的GitHub仓库,可以执行git clone [email protected]:zhongxianyao/test-go.git。
二、文件状态与暂存
- git status- 作用:查看工作区(当前目录下的文件)的状态。它会显示哪些文件被修改了、哪些文件是新添加的、哪些文件已经被暂存等信息。- 示例:执行
git status,如果看到modified: file.txt,表示file.txt文件被修改了。 - git add [file - name(s)]- 作用:将工作区中的文件添加到暂存区。暂存区是一个过渡区域,用于准备要提交的文件。可以逐个添加文件,也可以使用通配符添加多个文件。- 示例:如果要将
file.txt添加到暂存区,可以执行git add file.txt;如果要添加当前目录下所有修改和新添加的文件,可以执行git add .;添加所有的文件可以用git add --all。 - git stash list- 作用- 查看已经保存的
stash列表。每次执行git stash都会创建一个新的stash记录,git stash list可以显示这些记录的详细信息,包括stash@{0}、stash@{1}等,其中stash@{0}表示最近一次保存的stash。- 示例- 执行git stash list可能会看到类似这样的结果:stash@{0}: WIP on feature - branch: 1234567 some commit messagestash@{1}: WIP on another - branch: 7654321 another commit message - git stash apply [stash@{n}]- 作用- 将指定的
stash记录应用到当前工作区。如果不指定stash@{n},则默认应用最近一次保存的stash(stash@{0})。应用stash后,stash记录仍然存在于stash列表中。- 示例- 如果你之前保存了一个stash,现在想要恢复到工作区,可以执行git stash apply。如果要恢复特定的stash,例如stash@{1},则执行git stash apply stash@{1}。 - git stash pop [stash@{n}]- 作用- 与
git stash apply类似,将指定的stash记录应用到当前工作区,但与apply不同的是,pop操作在应用stash后会从stash列表中删除该stash记录。如果不指定stash@{n},则默认弹出最近一次保存的stash(stash@{0})。- 示例- 要恢复最近一次保存的stash并从stash列表中删除它,可以执行git stash pop。如果是stash@{2},则执行git stash pop stash@{2}。 - git stash drop [stash@{n}]- 作用- 直接删除指定的
stash记录。如果不指定stash@{n},则默认删除最近一次保存的stash(stash@{0})。- 示例- 如果你确定不再需要某个stash记录,例如stash@{3},可以执行git stash drop stash@{3}来删除它。 - git stash clear- 作用- 清空整个
stash列表,删除所有保存的stash记录。- 示例- 执行git stash clear将删除所有之前保存的stash记录,使用时需要谨慎,因为一旦执行无法恢复。 - git stash save “message”- 作用- 在保存
stash时添加一条自定义的消息,以便在查看stash列表时能更清楚地知道每个stash保存的内容。- 示例- 执行git stash save "Mid - development of feature X",这样在git stash list中看到这个stash时就能明确是在功能X开发中途保存的。
三、提交操作
- git commit - m “commit - message”- 作用:将暂存区的文件提交到本地仓库,并附上一条提交信息(commit - message)。提交信息应该简洁明了地描述本次提交的内容。- 示例:如果对
file.txt进行了修改并添加到暂存区后,可以执行git commit - m "Update file.txt"。 - git commit - a - m “commit - message”- 作用:这是一个组合命令,相当于先执行
git add - - all(将所有修改、删除和新添加的文件添加到暂存区),然后再执行git commit - m "commit - message"。- 示例:如果对多个文件进行了修改并且不想逐个添加到暂存区,可以执行git commit - a - m "Update multiple files"。
四、分支管理
- git branch- 作用:查看本地分支列表。它会显示当前仓库中所有的本地分支名称,并且当前所在分支会以特殊标记(如
*)显示。- 示例:执行git branch,如果看到master和feature - branch,表示仓库中有这两个本地分支,并且如果*在master旁边,说明当前处于master分支。 - git branch [branch - name]- 作用:创建一个新的本地分支。新分支会从当前分支的相同提交点创建。- 示例:如果要创建一个名为
new - feature的分支,可以执行git branch new - feature。 - git checkout [branch - name]- 作用:切换到指定的分支。这会使工作区、暂存区和本地仓库的状态切换到目标分支的状态。- 示例:要从
master分支切换到new - feature分支,可以执行git checkout new - feature。 - git merge [branch - name]- 作用:将指定分支合并到当前分支。例如,将
feature - branch合并到master分支。- 示例:在master分支下执行git merge feature - branch,会将feature - branch中的所有提交合并到master分支。
五、远程仓库操作
- git remote - v- 作用:查看当前仓库关联的远程仓库信息,包括远程仓库的名称(通常是
origin)和对应的URL地址。同时还会显示推送(push)和拉取(pull)的URL是否相同。- 示例:执行git remote -v,会看到类似origin [email protected]:zhongxianyao/test-go (fetch)和origin [email protected]:zhongxianyao/test-go (push)。 - git push [remote - name] [branch - name]- 作用:将本地分支推送到远程仓库。通常
remote - name是origin,表示默认的远程仓库。- 示例:如果要将本地的master分支推送到origin远程仓库,可以执行git push origin master。 - git pull [remote - name] [branch - name]- 作用:从远程仓库拉取指定分支的最新代码到本地。它实际上是先执行
git fetch(获取远程仓库的更新信息),然后执行git merge(将获取到的更新合并到本地分支)。- 示例:要从origin远程仓库的master分支拉取最新代码,可以执行git pull origin master。
六、标签操作
- git tag- 作用:列出本地仓库中的所有标签。标签可以用于标记特定的版本,如软件发布版本等。- 示例:执行
git tag,如果仓库中有v1.0、v1.1等标签,它们会被列出。 - git tag [tag - name]- 作用:在当前提交上创建一个轻量级标签。轻量级标签只是一个指向特定提交的指针,没有包含额外的元数据。- 示例:如果要为当前版本创建一个名为
v2.0的轻量级标签,可以执行git tag v2.0。 - git tag - a [tag - name] - m “tag - message”- 作用:创建一个带注释的标签。带注释的标签包含标签名、指向的提交、标签创建者、日期以及标签消息等信息。- 示例:执行
git tag - a v2.1 - m "Release version 2.1"可以创建一个名为v2.1且带有注释的标签。 - git push [remote - name] [tag - name]- 作用:将本地标签推送到远程仓库。- 示例:如果要将
v2.0标签推送到origin远程仓库,可以执行git push origin v2.0。
七、日志查看
- git log- 作用:查看提交历史记录。默认情况下,它会按时间顺序列出每个提交的哈希值、作者、日期和提交消息等信息。- 示例:执行
git log会显示类似如下信息:
commit 5f0ad77fe04094bdc2b5883bc32f8d130bdb7696 (HEAD -> master,
origin/master, origin/HEAD)
Author: jasperzhong <[email protected]>
Date: Fri Aug 30 18:47:49 2024 +0800
feat: pprof
- git log --oneline- 作用:以简洁的一行格式显示提交历史。每个提交只显示哈希值的前几位和提交消息,这样可以更快速地浏览提交历史。- 示例:执行
git log --oneline可能会显示:
5f0ad77 (HEAD -> master, origin/master, origin/HEAD) feat: pprof
2b3843d feat: loadsh_style (lo, go-fun)
04104bb chore(): cmd cobra
八、撤销操作
- git reset [commit - hash]- 作用:将当前分支的头指针移动到指定的提交(commit - hash)。这可以用于撤销最近的一些提交。如果不指定
--hard、--soft或--mixed(默认是--mixed)选项,它会将暂存区和工作区的状态调整到指定提交后的状态。- 示例:如果要撤销最近的一次提交并保留工作区的修改,可以执行git reset HEAD^(HEAD^表示上一个提交)。 - git revert [commit - hash]- 作用:创建一个新的提交来撤销指定提交的更改。与
git reset不同,git revert不会删除历史记录,而是通过创建一个反向的提交来抵消之前的提交效果。- 示例:如果要撤销一个已经推送到远程仓库的提交,可以执行git revert a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0,这会创建一个新的提交来还原之前提交所做的更改。
标签:
git
本文转载自: https://blog.csdn.net/zhongxianyao/article/details/142326833
版权归原作者 编程点滴 所有, 如有侵权,请联系我们删除。
版权归原作者 编程点滴 所有, 如有侵权,请联系我们删除。