The Missing Semester of Your CS Education 中文版-版本控制git解答
The Missing Semester of Your CS Education 中文版-版本控制git解答
- 新手初学,大佬勿喷,如有错误,欢迎留言
2.克隆本课程网站的仓库(https://github.com/missing-semester-cn/missing-semester-cn.github.io)
git clone https://github.com/missing-semester-cn/missing-semester-cn.github.io.git
(1)将版本历史可视化并进行探索
git log --all --graph --decorate

运行后会在当前路径下创建文件夹(名为missing-semester-cn.github.io)克隆github上的所有文件。
(2)是谁最后修改了 README.md 文件?(提示:使用 git log 命令并添加合适的参数)
git log -1 README.md

要在missing-semester-cn.github.io目录下运行该指令
(3)最后一次修改 _config.yml 文件中 collections: 行时的提交信息是什么?(提示:使用 git blame 和 git show)
git blame _config.yml | grep "collections:"
git show "上面命名输出的提交哈希"
复习下管道符| git blame _config.yml输出_config.yml有关提交的哈希,grep寻找到collection相关内容
3.使用 Git 时的一个常见错误是提交本不应该由 Git 管理的大文件,或是将含有敏感信息的文件提交给 Git 。尝试向仓库中添加一个文件并添加提交信息,然后将其从历史中删除 ( 这篇文章也许会有帮助https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/removing-sensitive-data-from-a-repository);

我使用本地仓库进行的测试,首先执行命令。这条命令创建了一个文件夹.git,注意:liunx默认把.开头的文件夹隐藏了
git init
之前没有配置过git的还要配置下用户名字和邮箱(两个都要有,缺一不可)
# --global是全局的意思
git config --global user.name "你的名字"
git config --global user.email "你的邮箱@example.com"
下面执行
git add "一个文件就OK"
git commit -m "SENSITIVE FILE"
运行下git log和git show就可以看到了我向xj.txt里面写了123456

运行git filter-repo --invert-paths --path xj.txt --force完成删除(新建的必须加上force,不然不给删除)
4、从 GitHub 上克隆某个仓库,修改一些文件。当您使用 git stash 会发生什么?当您执行 git log --all --oneline 时会显示什么?通过 git stash pop 命令来撤销 git stash 操作,什么时候会用到这一技巧?
git stash执行后显示No local changes to save
git log --all --online执行后

git stash pop 的作用是:将 stash 栈顶的临时快照恢复到工作区,并从 stash 栈中删除该快照(区别于 git stash apply:仅恢复,不删除)。(ai给的解释,还在继续研究)
5、与其他的命令行工具一样,Git 也提供了一个名为 ~/.gitconfig 配置文件 (或 dotfile)(我的叫.config)。请在 ~/.gitconfig 中创建一个别名,使您在运行 git graph 时,您可以得到 git log --all --graph --decorate --oneline 的输出结果;
在对应的配置文件中加入下列语句,然后在命令行终端执行下git graph和graph = log --all --graph --decorate --oneline,效果一致就OK
[alias]
graph = log --all --graph --decorate --oneline
6、您可以通过执行 git config --global core.excludesfile ~/.gitignore_global 来设置全局忽略文件的位置,这会告诉 Git 使用该文件,但您仍需要手动在该路径创建 ~/.gitignore_global 文件。配置您的全局 gitignore 文件来自动忽略系统或编辑器的临时文件,例如 .DS_Store;
作用:让 Git 自动忽略所有仓库中常见的「无用临时文件」(比如 macOS 的 .DS_Store、编辑器的缓存文件等),避免这些文件被误提交到代码仓库,也不用在每个项目里重复写忽略规则。
#在home下创建这个规则文件
#core.excludesfile:Git 配置项,指定「全局忽略文件」的路径
git config --global core.excludesfile ~/.gitignore_global
touch ~/.gitignore_global
豆包给了几个常见课忽略的文件
系统临时文件(macOS)
.DS_Store # macOS 文件夹属性文件(核心需要忽略的)
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db
编辑器临时文件(VSCode)
.vscode/ # VSCode 工作区配置(如需保留部分,可细化为 .vscode/settings.json 除外)
*.code-workspace
编辑器临时文件(Vim)
*.swp
*.swo
.DS_Store
使用文本编辑器把上述内容写入即可

浙公网安备 33010602011771号