常用命令
全局配置
git config --global user.name test
git config --global user.email test123@163.com
git config --list # 查看全局配置初始化工作区
git init查看本地库状态
git status将工作区的文件添加到暂存区
git add .提交本地库
git commit -m "日志信息"查看历史版本
git reflog #查看版本信息
git reflog -n 数量 #查看最新的n个版本信息
git log #查看版本详细信息
git log --oneline # 单行模式查看版本穿梭
git reset --hard 版本号关联仓库和推送
# 关联远程仓库
git remote add origin https://gitee.com/zxfjd3g/shell_test.git
# 将本地仓库的main分支推送到远程仓库的master分支
git push -u origin main:master生成RSA密钥
ssh-keygen -t rsa带冲突的预合并
git config pull.rebase false忽略文件
新建
.gitignore文件touch .gitignore.gitignore内容
忽略一个特定的文件,你需要提供该文件在项目根目录下的完整路径。
例如,如果你想忽略位于根目录下的text.txt文件,你可以做如下操作:/text.txt而如果你想忽略一个位于根目录下的
test目录中的text.txt文件,你要做的是:/test/text.txt如果你想忽略所有具有特定名称的文件,你需要写出该文件的字面名称。
例如,如果你想忽略任何text.txt文件,你可以在.gitignore中添加以下内容:text.txt要忽略整个目录及其所有内容,你需要包括目录的名称,并在最后加上斜线 /:
text/这个命令将忽略位于你的项目中任何地方的名为 test 的目录(包括目录中的其他文件和其他子目录)。
需要注意的是,如果你只写一个文件的名字或者只写目录的名字而不写斜线 /,那么这个模式将同时匹配任何带有这个名字的文件或目录:# 匹配任何名字带有 test 的文件和目录 test如果你想忽略任何以特定单词开头的文件或目录怎么办?
例如,你想忽略所有名称以 img 开头的文件和目录。要做到这一点,你需要指定你想忽略的名称,后面跟着 * 通配符选择器,像这样:img*这个命令将忽略所有名字以 img 开头的文件和目录。
但是,如果你想忽略任何以特定单词结尾的文件或目录呢?
如果你想忽略所有以特定文件扩展名结尾的文件,你需要使用 * 通配符选择器,后面跟你想忽略的文件扩展名。
例如,如果你想忽略所有以 .md 文件扩展名结尾的 markdown 文件,你可以在你的 .gitignore 文件中添加以下内容:*.md这个模式将匹配位于项目中任何地方的以 .md 为扩展名的任何文件。
前面,你看到了如何忽略所有以特定后缀结尾的文件。当你想做一个例外,而有一个后缀的文件你不想忽略的时候,会发生什么?
假设你在你的 .gitignore 文件中添加了以下内容:.md这个模式会忽略所有以 .md 结尾的文件,但你不希望 Git 忽略一个 README.md 文件。
要做到这一点,你需要使用带有感叹号的否定模式,即 !,来排除一个本来会被忽略的文件:# 忽略所有名字带有 test 的目录 test/ # 试图在一个被忽略的目录内排除一个文件是行不通的 !test/example.md当你创建一个新的仓库时,最好的做法是创建一个 .gitignore 文件,包含所有你想忽略的文件和不同的文件模式–在提交之前。
Git 只能忽略尚未提交到仓库的未被追踪的文件。
如果你过去已经提交了一个文件,但希望没有提交,会发生什么?
比如你不小心提交了一个存储环境变量的 .env 文件。
你首先需要更新 .gitignore 文件以包括 .env 文件:# 给 .gitignore 添加 .env 文件 echo ".env" >> .gitignore现在,你需要告诉 Git 不要追踪这个文件,把它从索引中删除:
git rm --cached .envgit rm命令,连同--cached选项,从版本库中删除文件,但不删除实际的文件。这意味着该文件仍然在你的本地系统和工作目录中作为一个被忽略的文件。git status会显示该文件已不在版本库中,而输入ls命令会显示该文件存在于你的本地文件系统中。
如果你想从版本库和你的本地系统中删除该文件,省略--cached选项。
接下来,用git add命令将.gitignore添加到暂存区:git add .gitignore最后,用
git commit命令提交.gitignore文件:git commit -m "update ignored files"