Git版本控制系统的使用指南,包括基本操作、分支管理、团队协作等内容。
git config
在 Git 中,你可以使用以下命令来查看和修改配置:
查看配置
查看全局配置:
bash
git config –global –list
查看当前仓库的配置:
bash
git config –local –list
查看系统配置:
bash
git config –system –list
如果你只想知道某个特定配置的值,你可以这样做:
bash
git config <配置项名称>
例如,要查看全局的用户名配置:
bash
git config –global user.name
修改配置
设置全局配置:
设置用户名:
bash`git config --global user.name "Your Name"`
设置邮箱:
bash`git config --global user.email "your.email@example.com"`
设置当前仓库的配置:
与全局配置类似,但使用 –local 代替 –global。
3. 设置系统配置:
通常不推荐修改系统配置,除非你有特定的理由。
4. 直接编辑配置文件:
你也可以直接编辑 Git 的配置文件。这些文件通常位于以下位置:
- 全局配置:
~/.gitconfig
- 系统配置:
/etc/gitconfig
(Linux)或/usr/local/git/etc/gitconfig
(macOS) - 当前仓库配置:仓库目录下的
.git/config
文件。使用文本编辑器打开这些文件,然后进行相应的修改。
注意:当你设置或修改配置时,Git 会尝试从多个级别(系统、全局、本地)获取配置值。如果某个配置项在多个级别都有设置,Git 会优先使用本地仓库的配置,然后是全局配置,最后是系统配置。
git remote
git remote
命令在Git中用于管理一组跟踪的远程仓库。它允许您查看、添加、修改和删除与您的本地仓库关联的远程仓库的配置。远程仓库通常是位于互联网或其他网络中的仓库,可以是一个中心仓库,也可以是另一个开发者的仓库,您可以从中拉取(pull)数据或向其推送(push)数据。使用git remote
可以进行以下操作:
查看远程仓库:使用
git remote
或git remote -v
命令可以列出所有已配置的远程仓库。-v
(verbose,详细)选项会额外显示每个远程仓库的URL。添加远程仓库:使用
git remote add <name> <url>
命令可以添加新的远程仓库,其中<name>
是您为远程仓库指定的简短名称(如origin
),<url>
是远程仓库的URL。更改远程仓库URL:使用
git remote set-url <name> <newurl>
命令可以更改已存在的远程仓库的URL。删除远程仓库:使用
git remote remove <name>
或git remote rm <name>
命令可以删除一个远程仓库的引用。重命名远程仓库:使用
git remote rename <oldname> <newname>
命令可以重命名远程仓库的简称。
在协同工作流中,git remote
命令是非常重要的,它使得开发者能够与远程仓库交互,共享代码和协作。例如,origin
通常是克隆仓库时自动创建的默认远程仓库名称,代表了克隆来源的仓库。通过管理远程仓库,您可以轻松地同步本地更改到远程服务器,或者拉取他人的更改到您的本地仓库中。
报错
luluji@luluji-virtual-machine:~/nuttxspace$ git clone https://github.com/apache/nuttx.git nuttx
正克隆到 ‘nuttx’…
fatal: 无法访问 ‘https://github.com/apache/nuttx.git/':gnutls_handshake() failed: Error in the pull function.
通过安装这些库解决了:
sudo apt -y install build-essential nghttp2 libnghttp2-dev libssl-dev
顺序
git push之前先git pull
git checkout master之前先git add和commit
子模块
正在克隆子模块时就是在克隆,不会有进度条,跟卡住了似的是正常的
riscv-gnu-toolchain中的子模块可换源
https://www.bilibili.com/read/cv28486387/
当更改了.gitmodules文件中的子模块 URL 时,Git 不会自动更新已经克隆的子模块。如果希望使用新的 URL 克隆子模块,则需要手动更新子模块的配置。
要更新子模块的配置,可以运行以下命令:
git submodule sync
这个命令将会更新本地存储库中的 .git/config 文件以反映.gitmodules文件中的新 URL。
然后,可以运行以下命令来更新子模块:
git submodule update –init –recursive
这个命令将会使用.gitmodules文件中的新 URL 克隆或更新子模块,并递归地更新任何子模块的子模块(如果有的话)。
git add .的撤回
git reset
gitignore
* 和 *.*:忽略所有文件。
!/:不忽略所有目录。
!Makefile:不忽略 Makefile 文件。
!.mk:不忽略所有 .mk 文件。
!.scala:不忽略所有 .scala 文件。
!.[cSh]:不忽略所有 .c、.S 和 .h 文件。
!.v:不忽略所有 .v 文件。
!.cpp:不忽略所有 .cpp 文件。
!*.cc:不忽略所有 .cc 文件。
!.gitignore:不忽略 .gitignore 文件。
!.scalafmt.conf:不忽略 .scalafmt.conf 文件。
!build.sc:不忽略 build.sc 文件。
!README.md:不忽略 README.md 文件。
!/src/**:不忽略 src 目录及其所有子目录和文件。
!/patch/**:不忽略 patch 目录及其所有子目录和文件。
!/perip/**:不忽略 perip 目录及其所有子目录和文件。
!/spec/**:不忽略 spec 目录及其所有子目录和文件。