reference
初学者可以在线练习的网站Learn Git Branching 可以拿这个自测一下(虽然我自己也没测还hh)
git
基本操作
-
git add
使用命令行远程仓库已有的情况下,指定文件不add
写在.git/info/exclude中
advanced
-
解决git pull/push每次都需要输入密码问题(非明文) – 使用libsecret(自己的机子就放心用store的方式了呗)其实最简单是就是当前机子的公钥上传到,多把公私钥的管理请见:多个公私钥管理 【下面的子内容不用读了】大意就是git after 2.1.1 uses libsecret(supported still by GNOME keyring) instead of gnome-keyring。编译libsecret有点小注意点,按照SO的来就可以
- 虽然重新登陆后第一次使用的时候要输keyring,但是整个机子上只需要记这一个简单点的password就行,而且不需要再输入账号名和密码了。
- attention ,git config --global只会对当前user 起作用。配置信息可以查看~/.gitconfig 或者git config --list
-
~/.gitconfig别名配置
- 原理
- 大全
- 直接看我的.gitconfig吧
-
git补全
-
.gitignore
-
取消追踪 git update-index --skip-worktree && git update-index --no-skip-worktree
- 查看哪些文件被追踪 reference git ls-files -v 前面是S的就是未被追踪的
-
上传大文件时候的git lfs,reference blog:详解 Git 大文件存储(Git LFS)
- 安装
# ubuntu curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.rpm.sh | sudo bash sudo apt-get install git-lfs git lfs install
- 使用
- 上传
git lfs track xxxFile git add . git commit -m "xxx" git push
- 拉取
git lfs clone 或者 git clone # 前者显式lfs clone 性能会更好 git lfs pull 或者直接 git pull
- 如果已经git lfs track了但还是报错,清除下缓存或者返回到上一个没有报错的commit,然后重新add提交 或者 清除下缓存:
git rm -r --cached ./
- 安装
详细展开
hesy:git merge
hesy:git diff,git checkout,git rm
hesy:git reset & git revert
hesy:git rebase
others
hesy blog :vscode中好用的git相关的插件
working tree /stage(index) / commit history
自己local机子上的就是working tree(工作区)
add之后的就是staged,进了stage的(缓存区)
commit之后就是提交到当前本地的分支,也就是版本库(commit History)
进一步要将本地分支提交到远程仓库就是用git push
要操纵缓存区的文件 一般在路径前面加 --
git rm -r -- cached .
git checkout
gitflow
github-tool
- 源码阅读tool
- hexo建站
- github-pages
- github展示幻灯片 以及 展示项目主页
- with markdown写ppt
- github展示幻灯片 以及 展示项目主页
问题解决
- git branch -a 无法显示远程和本地分支
- github突然无法访问–modify hosts file
- 一台机子多个公钥
补充:ssh的公私钥和github的公私钥区别 : 公私钥的功能:加密 & 签名验证
to-do
- git grep使用
- MathJax Plugin for Github这个github相关的插件可以允许查看github上仓库里的数学公式