git 笔记
Git 官网
命令文档地址:https://git-scm.com/docs
检查本地 git 环境
1 | git --version |
主要命令
Branch
1 | git branch |
在 Git 命令中,branch
和 refspec
是两个不同的概念,它们的语法也不同。
Branch 语法
branch
是指本地或远程的分支名。在 Git 命令中,您通常只需要提供分支名即可,例如:
1 | 1# 切换到一个已存在的本地分支 |
在这些命令中,branch-name
和 new-branch-name
是本地分支名,而 origin/remote-branch-name
是远程分支名,其中 origin
是远程仓库的默认名称。
Refspec 语法
refspec
在 git fetch
和 git push
命令中定义了源分支和目标分支之间的映射关系,在其最基本的形式中,refspec
的语法是:
1 | source:destination |
它可能具有以下形式:
+source:destination
- 强制推送(忽略非快进更新)source
- 指定只推送源分支到远程同名分支:destination
- 删除远程的目标分支(使用git push
)
在 git push
的上下文中,source
通常是本地分支名,而 destination
是远端分支名。而在 git fetch
的上下文中,则是相反:source
是远端分支名,而 destination
是本地分支名。
例如,如果您想要推送本地的 feature
分支到远程仓库的 feature
分支,您会使用:
1 | git push origin feature:feature |
如果您想要强制推送这个分支(即使这会导致数据丢失),则会使用:
1 | git push origin +feature:feature |
如果您想要删除远程仓库的 feature
分支,则会使用:
1 | git push origin :feature |
而如果您想要从远程仓库获取 feature
分支并将其映射到本地的 my-feature
分支上,您会使用:
1 | git fetch origin feature:my-feature |
在这里,origin
是远程仓库的名称。对于 git fetch
和 git push
,您也可以省略 destination
部分,让 Git 使用默认的行为(如将分支推送到具有相同名称的远程分支)。
总结
branch
通常只是分支的名称,无需特殊语法。refspec
是一个更复杂的概念,用于在git fetch
和git push
操作中定义本地分支和远程分支之间的映射关系,有自己特定的语法。