Git 知识小结
- 1.配置
- 2.版本管理
- 3.分支管理
- 4.远程仓库
- 5.标签管理
- 6.自定义git
- 7.git 工作流程
1.配置
git init | git init | 初始化Git仓库 |
git config | git config --global user.name “Your Name” | 配置当前⽤户⽤户名。使⽤–global参数将配置全局⽤户名 |
git config --global user.email “email@example.com” | 配置当前⽤户Email。使⽤–global参数将配置全局Email |
2.版本管理
git add | git add < directory > | 将指定⽬录的所有修改加⼊到下⼀次commit中。 |
git add < file > | 添加指定⽂件的修改 | |
git commit | git commit -m | 提交暂存区的修改,使⽤指定的< message >作为提交信息,⽽不是打开⽂本编辑器输⼊提交信息。 |
git status | git status | 显示哪些⽂件已被staged、未被staged以及未跟踪(untracked)。 |
git diff | git diff | ⽐较⼯作区和暂存区的修改。 |
git diff HEAD | ⽐较⼯作区和上⼀次commit后的修改。 | |
git diff --cached | ⽐较⼯作区和上⼀次commit后的修改。 | |
git log | git log | 以缺省格式显示全部commit历史。 |
–pretty=oneline | 一行简略显示 | |
–graph | 显示图形化的branch信息。 | |
git reflog | git reflog | 显示本地repo的所有commit⽇志。 |
git reset | git reset | 移除所有暂存区的修改,但不会修改⼯作区。 |
–hard | 移除所有暂存区的修改,并强制删除所有⼯作区的修改 | |
< commit > | 将当前分⽀回滚到指定,清除暂存区的修改,但保持⼯作区状态不变。 | |
–hard < commit > | 将当前分⽀回滚到指定,清除暂存区的修改,并强制删除所有⼯作区的修改 | |
git checkout | – < file > | 将当前分⽀回滚到指定,清除暂存区的修改,并强制删除所有⼯作区的修改 |
–hard < commit > | 将当前分⽀回滚到指定,清除暂存区的修改,并强制删除所有⼯作区的修改 | |
git rm | -git rm | 删除文件 |
git clean | git clean -f | 从你的工作目录中删除所有没有tracked过的文件 |
3.分支管理
git checkout | git checkout -b < name > | 创建+切换分支 |
git checkout < name > | 切换分支 | |
git branch | git branch | 列出所有分支 |
git branch -d < name > | 删除分支 | |
git merge | git merge --no-ff | 普通模式合并,合并后的历史有分支,能看出来曾经做过合并 |
git merge fast forward | 合并就看不出来曾经做过合并 | |
git switch | git switch -c < name > | 创建+切换分支 |
git switch < name > | 切换分支 | |
git stash | git stash | 当前工作现场“储藏”起来,等以后恢复现场后继续工作 |
git stash apply | 恢复工作现场 | |
git stash drop | git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除 | |
git stash pop | 恢复的同时把stash内容也删了 | |
git cherry-pick | git cherry-pick < commit > | 提交的修改“复制”到当前分支,避免重复劳动 |
4.远程仓库
git remote | git remote -v | 查看远程库信息 |
git remote rm origin | 解除了本地和远程的绑定关系 | |
git remote add < name > < url > | 关联一个远程库 | |
git clone | git clone < url > | 从远程库克隆 |
git push | git push origin < branch-name > | 将本地指定< branch >推送到指定远程< remote >。如果远程没有对应的分⽀,将⾃动在远程创建此分⽀。 |
git pull | git pull < remote > | 从指定< remote >抓取所有分⽀的commit并⽴刻合并到本地repo。 |
git fetch | git fetch | 将远程主机的最新内容拉到本地 |
5.标签管理
git tag | git tag | 查看所有标签 |
git tag < tagname > | 打一个新标签 | |
git tag -a < tagname > -m “blablabla…” | 可以指定标签信息 | |
git push origin < tagname > | 推送一个本地标签 | |
git push origin --tags | 推送全部未推送过的本地标签 | |
git tag -d < tagname > | 删除一个本地标签 | |
git push origin :refs/tags/< tagname > | 删除一个远程标签 | |
git show | 查看标签信息 |
6.自定义git
.gitignore文件
忽略文件的原则是:
- 忽略操作系统自动生成的文件,比如缩略图等;
- 忽略编译生成的中间文件、可执行文件等,也就是如果一个文件是通过另一个文件自动生成的,那自动生成的文件就没必要放进版本库,比如Java编译产生的.class文件;
- 忽略你自己的带有敏感信息的配置文件,比如存放口令的配置文件。
git check-ignore | 命令检查 |
# 排除所有.开头的隐藏文件:
.*
# 排除所有.class文件:
*.class
# 不排除.gitignore和App.class:
!.gitignore
!App.class
7.git 工作流程