git一点通
1.Git中包含子模块是独立模块,Clone的时候需要特殊处理
git clone --recurse-submodules 拉取所有模块
如果忘了, 下面命令可以后补
$ git submodule update --recursive --init
或者
$ git submodule init
$ git submodule update
2.文件没有更改,但git status显示modified
对于静态库,动态库,软连接这些文件,明明从远程git仓库上拉下来直接使用的,但是编译程序后,
git status显示发生了变化。git config --list显示core.fileMode有两条,第一条core.fileMode=true,
后面一条core.fileMode=false,那么原因就很清晰明了了,用户可能使用了global配置。
git config core.fileMode false及git config --global core.fileMode false使用一种配置即可。
解决办法:删除仓库中的 .git/config 文件中配置的“filemode = true"
但是这种方法在linux系统上有效的,windowds系统无效。因为代码运行在linux系统上,windowds系统对linux上的动态库这些底层机制
还是不一样的。
尝试方法:git restore命令将文件恢复到上次提交的内容;
其他排查方法:
git diff --summary查看文件具体发生了什么改变
因LF/CRLF原因导致的需要配置git config core.autocrlf false
因文件名发生改变导致的需要配置git config core.filename false;
3. 本地git克隆clone的远程仓库url已更改为新的url,更新本地git url地址
git remote set-url origin https://github.com/newuser/newrepo.git
在这个命令中,origin 是原始的远程仓库的名称,https://github.com/newuser/newrepo.git 是新的 URL 地址。
git remote -v 或者git config --list来验证url地址是否更新成功。
4. 要查看某次提交的详细信息和修改内容,可以使用 git show 命令# 查看指定提交的详细信息和修改内容
git show <commit_hash>
# 查看指定提交中某个文件的修改内容
git show <commit_hash> <file_name>
# 比较两个提交之间的差异
git diff <commit_hash1> <commit_hash2>
要查看某个commit的修改文件,可以使用以下命令:
使用 git diff --name-only [commit-hash] 查看特定提交中修改或新增的文件。用于显示工作目录和暂存区之间的文件更改列表。它会列出工作目录中所有已修改但尚未暂存或提交的文件名。
使用 git show --name-only <commit-hash> 查看该次提交记录的详细信息,包括修改的文件列表。提交的文件更改列表
也可以使用 git show [commit-hash] 来查看该提交的详细信息和修改的文件。
这些命令可以帮助你快速找到特定提交中所做的更改。

浙公网安备 33010602011771号