git知识大全

git基础操作

### GIT操作

git init 初始化本地仓库

git remote add origin https://gitee.com/***/ESP32.git 添加远程仓库地址

git clone https://gitee.com/***/ESP32.git mygrit 克隆时,自己定义要新建的仓库目录名称mygrit;可不定义。

git remote -v 验证远程仓库

git add . 对当前目录所有文件进行跟踪

git commit -m "Version information" 版本信息

  • ++如果一行不够,可以只执行git commit,就会跳出文本编译器,让你写多行。Commit message 格式包括三个部分:Header,Body 和 Footer。++

git status -s 查看仓库当前文件提交状态
(A:提交成功;AM:文件在添加到缓存之后又有改动)

git fetch --all 获取最新的版本信息,但不会自动合并或修改你当前的工作目录或任何分支的内容。

git pull origin master 同步操作(拉取最新版本)

推送:
git push https://gitee.com/***/ESP32.git
git push origin master 更新到远程仓库(推送)-> 强制推送 git push origin master -f
git push -u origin master -u参数是--set-upstream的简写,它告诉Git将当前分支与远程仓库的指定分支关联起来,并设置远程跟踪。

git log 查看git提交的日志

可能会用到的操作:
git remote -v 查看远程的仓库名(一般是origin)
git branch 查看本地分支名(一般是master)

git config --list 查看配置信息
git config user.name 单个变量查看

git config --global user.name "MarkLi"
git config --global user.email 123456789@qq.com

  • 去掉 --global 选项,仅当前仓库有效,新的设定保存在当前仓库的.git/config 文件里。

git config user.name 'MarkLi'
git config user.email '123456789@qq.com'

git config --global credential.helper store 配置客户端记住密码
git config credential.helper store

git config --global core.editor vim 文本编辑器配置vim
git config core.editor vim

git config --global merge.tool vimdiff 差异分析工具vimdiff
git config merge.tool vimdiff

从远程仓库 origin 的 master 分支获取最新的更改,并将你的本地更改重新应用到这些最新更改之上,以此来更新你的本地分支,同时保持一个更线性的提交历史。
git remote add origin https://github.com/espressif/esp-idf.git


在Git中,如果你想要忽略某些文件或目录,使其不被Git跟踪或提交到仓库中,你可以使用.gitignore文件来实现这一点。.gitignore文件可以指定Git忽略哪些文件或目录,这对于忽略编译生成的文件、日志文件、临时文件等非常有用。

以下是如何使用.gitignore文件来忽略文件或目录的步骤:

  1. 创建.gitignore文件:
  2. 如果你的项目目录中还没有.gitignore文件,你需要手动创建一个。你可以使用任何文本编辑器来创建这个文件,并将其保存在你的项目根目录下(即与.git目录同一级)。
  3. 编辑.gitignore文件:
  4. 在.gitignore文件中,你可以添加需要Git忽略的文件或目录的模式。每一行可以指定一个模式,Git会忽略与这些模式匹配的文件或目录。
  5. 例如,如果你想要忽略所有的.log文件和temp/目录,你可以在.gitignore文件中添加以下两行:
*.log  
temp/
  • Git也支持使用通配符和路径模式来指定更复杂的忽略规则。
  • 应用.gitignore文件的更改:
  • 一旦你编辑并保存了.gitignore文件,Git就会开始忽略匹配这些模式的文件或目录。但是,请注意,如果你之前已经跟踪了某个文件,并将其添加到了Git仓库中,那么仅仅将该文件添加到.gitignore文件中是不足以让Git停止跟踪它的。
  • 要停止跟踪已经被Git跟踪的文件,你需要从Git仓库中删除它(但保留在你的工作目录中),然后提交这个更改。你可以使用git rm --cached <file>命令来从Git仓库中删除文件,但保留在你的工作目录中。然后,你可以提交这个更改(git commit),之后这个文件就会被Git忽略了。
  • 分享.gitignore文件:
  • 如果你是在一个团队中工作,并且想要确保所有的团队成员都使用相同的.gitignore文件,你可以将.gitignore文件添加到你的Git仓库中,并与其他团队成员共享。这样,每当有人克隆你的仓库时,他们都会自动获得.gitignore文件,并应用相同的忽略规则。

通过以上步骤,你可以有效地使用.gitignore文件来忽略不需要提交到Git仓库中的文件或目录。


git clone --recursive 命令用于克隆一个 Git 仓库及其子模块。当你需要获取一个仓库以及它所有的 Git 子模块时,这个选项非常有用。子模块可以理解为仓库中的另一个独立的 Git 仓库,通常用来管理依赖项或其他分离的项目部分。

下面是如何使用 git clone --recursive 的基本步骤:

  1. 检查目标仓库是否有子模块:首先,你需要确定你要克隆的目标仓库是否包含子模块。你可以在仓库的 README 或者文档中找到相关信息。
  2. 克隆仓库:如果你确定要克隆的仓库包含子模块,你可以使用 --recursive 选项来克隆仓库和它的所有子模块。命令如下:
    git clone --recursive [repository-url]
    其中 [repository-url] 是仓库的 URL 地址。
  3. 后续操作:克隆完成后,你的本地仓库将包含主仓库以及所有初始化并检出的子模块。

如果你已经克隆了一个仓库但没有使用 --recursive 选项,你仍然可以初始化并检出子模块:

cd [your-repo]
git submodule update --init --recursive

这条命令将会初始化所有子模块,并递归地检出它们的任何子模块。

注意:

  • 如果你在克隆仓库时没有使用 --recursive,那么子模块将只是作为未初始化的目录存在于 .gitmodules 文件中定义的位置。你需要手动初始化并检出这些子模块。
  • 如果仓库的子模块层级较深,--recursive 会递归地处理所有层级的子模块。
  • 如果你遇到任何身份验证的问题,确保你有正确的访问权限,并且使用了正确的凭据。

本文由博客一文多发平台 OpenWrite 发布!

MarkLi
1 声望0 粉丝