Git

来自OSSmedia

git 是代码版本控制常用的软件,并且可以推广到任何纯文本的项目,非文本的内容如果变化不多可以考虑使用git LFS拓展.

软件配置

ssh登录

修改ssh配置文件,并在仓库的设置中使用配置文件里的Host名称即可

http登录

本质上是http basic auth, 可以在git项目配置文件中的地址内部写入登录信息.

Í也可以使用.netrc

# ~/.netrc
machine myserver.trial.labkey.host
login user@labkey.com
password mypassword

也可以配置git自动保存密钥

git config --global credential.helper store

也可以替换http至ssh

git config --global url."git@github.com:".insteadOf "https://github.com/"

配合ssh的配置可以在url的部分写成Host名称

配合 windows

windows 经常会往文件里面写妙妙换行,用这种方式自动替换CRLF成LF,仅显示警告(git diff),解决碍眼的 ^M 换行符号

git config --global core.autocrlf input
echo * text=auto >> ~/.gitattributes

项目配置

submodule

将在detach模式下提交的内容合并到main

假设你已经在commit之后使用checkout来到了main分支,现在需要回去:

#如果没有checkout可以跳过这个步骤
git reflog
git cehckout <commit hash>

然后在这里创建新的分支

git switch -c <new-branch-name>

之后就可以回到main分支然后合并代码了

git checkout main
git merge <branch-name>

甚至之后还可以把那个分支删掉

git branch -d <branch-to-delete>

选择分支

git config -f .gitmodules submodule.path/to/submodule.branch main

或者编辑 .gitmodules,手动添加

branch = main