Refer: git的一些使用_git config --local core.excludesfile-CSDN博客
Git使用教程_git checkout -t-CSDN博客
Refer:Git使用教程-CSDN博客
一、忽略文件或文件夹.gitignore
git checkout -t origin/<branch_name> // 拉取远程分支到本地
git checkout -b <branch> origin/<branch_name> // 创建本地分支与远程分支关联
//如果没有.gitignore文件
$ touch .git/.gitignore //touch .gitignore
$ git config --local core.excludesfile .git/.gitignore //git config --local core.excludesfile .gitignore
$ vim .git/.gitignore //vim .gitignore
.gitignore文件,中忽略 /PC-CU.si4project/ 文件夹:
/PC-CU.si4project/
本地配置文件.git\config修改为:
[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
symlinks = false
ignorecase = true
excludesfile = .git/.gitignore
[remote "origin"]
url = http://10.20.0.109:8000/gitlab-instance-f256eb7f/hmtc-su.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "main"]
remote = origin
merge = refs/heads/main
二、子模块(.gitmodules)
Refer:Git必备命令-子模块 (qq.com)
2.1 首次拉取带子仓库的代码方法
方法一:仓库一起(整体)拉取:
git clone --recurse-submodules <父仓库地址>
或
git clone <父仓库地址> assets --recursive
方法二:分开拉取
git clone <父仓库地址>
git submodule status // 查看子模块的状态
git submodule init // 初始化子模块
git submodule update // 更新子模块与主仓库中的子模块代码同步
// or
git submodule update --init
// or 嵌套的(子仓库中包含子仓库)
git submodule update --init --recursive
2.2 在主仓库更改子仓库代码并提交方法:
三、分支
3.1 常用分支创建方式
从远端仓库拉取指定分支
// 第一个将克隆整个 repo,并检查dev 分支。
git clone --branch <branch_name> <https://github.com/username/Repo.git>
// 第二个,使用该--single-branch 标志,将只获取与正在下载的分支有关的更新。如果您在不关心的其他分支上有很多文件,这会更快。
git clone --branch <branch_name> --single-branch <repository_url>
// e.g.
git clone --branch v4.11.0 --single-branch https://github.com/wazuh/wazuh.git --recursive
1. `git clone`:使用该命令从远程仓库克隆代码到本地。
2. `–branch [branch_name]`:通过该选项指定要克隆的分支。将`[branch_name]`替换为分支名称。
3. `–single-branch`:此选项允许只克隆某个分支的历史记录,而不是克隆所有分支。
4. `[repository_url]`:用来指定远程仓库的URL。将`[repository_url]`替换为要克隆的远程仓库的URL。
git branch -vv // 查看本地分支与远端分支关联关系
git remote show origin
3.1 创建空分支
创建空分支的方法有多种,以下是几种不同的实现方法:
方法一:
-
使用命令行进入项目目录。
-
执行命令:
git checkout --orphan <branch_name>
,其中是你要创建的空分支的名称。
方法二:
-
使用命令行进入项目目录。
-
执行命令:
git branch <branch_name>
,其中是你要创建的空分支的名称。 -
执行命令:
git checkout <branch_name>
方法三:
-
使用命令行进入项目目录。
-
执行命令:
git checkout --orphan <branch_name>
,其中是你要创建的空分支的名称。 -
执行命令:
git rm -rf .
,删除所有文件。 -
创建一个空白文件:
touch README.md
(可以根据需求创建其他必要的文件)。 -
执行命令:
git add .
,将新创建的文件添加到空分支中。 -
执行命令:
git commit -m "Create empty branch"
,提交更改。 -
提交远端: git push --set-upstream origin
<branch_name>
以上是几种不同的方法来创建一个空分支,你可以根据自己的需求选择其中一种方法来完成创建。
提示:
3.2 修改分支名称
git checkout -t origin/old //本地切换到远程待重命名分支
git branch -m old new //先修改本地分支重命名
git push origin :old //删除远程分支
git push origin new:new //将本地分支推送到远程分支上,如果远程分支不存在,则创建此远程分支
附录A: 常见问题
从Github上clone项目的时候会出现:error: RPC failed; curl 28 OpenSSL SSL_read: Connection was reset, errno 10053/10054
解决办法:git config --global http.sslVerify "false", 同时把网址的.git后缀删除。
Administrator@DESKTOP-MUPIBUO MINGW64 /e/workForGit
$ git config --global http.sslVerify "false"
Administrator@DESKTOP-MUPIBUO MINGW64 /e/workForGit
$ git clone --recurse-submodules https://github.com/CommunityToolkit/MVVM-Samples.git
Cloning into 'MVVM-Samples'...
附录B: 删除Git的历史记录
删除Git的历史记录是一项敏感且危险的操作,因为它会对仓库的完整性和版本控制产生影响。在Git中,删除历史记录有多种方法,包括使用rebase命令、reset命令、filter-branch命令等。下面将详细介绍这些方法的操作流程和注意事项。
方法一:使用rebase命令删除历史记录
1. 首先,使用git log命令查看当前分支的提交历史,并找到你想要删除的提交记录的哈希值。
2. 在删除历史记录之前,建议先创建一个新的分支来保存当前的提交历史。可以使用以下命令创建一个新的分支:
“`
git checkout -b backup_branch
“`
3. 接下来,使用以下命令执行交互式rebase:
“`
git rebase -i
“`
其中,是你想要删除的提交记录的哈希值。
4. 会弹出一个文本编辑器,列出了包含你要删除的提交记录的所有提交。在编辑器中,将要删除的提交前面的”pick”关键字修改为”drop”,然后保存并关闭编辑器。
5. Git将会按照你指定的顺序重新应用提交历史,并将你选择删除的提交记录从历史中排除,从而实现删除历史记录的目的。
6. 完成rebase后,可以使用git log命令再次查看提交历史,确认已成功删除历史记录。
7. 最后,将删除历史记录的分支推送到远程仓库,可以使用git push命令:
“`
git push origin branch_name –force
“`
注意:使用–force选项强制推送,因为已经修改了历史记录。
方法二:使用reset命令删除历史记录
1. 使用git log命令找到你想要删除的提交记录的哈希值。
2. 在删除历史记录之前,同样建议创建一个新的分支来保存当前的提交历史,可以使用以下命令:
“`
git checkout -b backup_branch
“`
3. 接下来,使用以下命令来执行reset操作:
“`
git reset –hard
“`
其中,是你想要删除的提交记录的哈希值。
4. Git会将HEAD指针和当前分支的指针重置到你指定的提交记录,从而删除之后的提交记录。
5. 完成reset后,可以使用git log命令再次查看提交历史,确认已成功删除历史记录。
6. 最后,将删除历史记录的分支推送到远程仓库,使用git push命令:
“`
git push origin branch_name –force
“`
方法三:使用filter-branch命令删除历史记录
注意:filter-branch命令是一项功能强大但也危险的操作,请在执行之前备份你的仓库。
1. 在使用filter-branch命令之前,同样建议创建一个新的分支来保存当前的提交历史。
2. 执行以下命令来运行filter-branch:
“`
git filter-branch –force –index-filter ‘git rm –cached –ignore-unmatch ‘ –prune-empty –tag-name-filter cat — –all
“`
其中,是你想要删除的文件名。
注意:上述命令将删除所有提交历史中与指定文件相关的记录。
3. 等待命令执行完成后,Git会对所有的提交进行重写,从而删除了指定文件的提交历史。
4. 完成filter-branch后,可以使用git log命令再次查看提交历史,确认已成功删除历史记录。
5. 最后,将删除历史记录的分支推送到远程仓库,使用git push命令:
“`
git push origin branch_name –force
“`
总结:
使用rebase、reset或filter-branch命令可以删除Git的历史记录。然而,这些操作都是不可逆的,而且会对其他人的工作产生影响,请谨慎操作,并在执行之前备份你的仓库。在实际操作过程中,建议先创建一个新的分支来保存当前的提交历史,以便在需要时可以进行恢复。