Git 知识小结
- 1.配置
- 2.版本管理
- 3.分支管理
- 4.远程仓库
- 5.标签管理
- 6.自定义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 |
删除文件 |
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。 |
|
|
|
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文件;
- 忽略你自己的带有敏感信息的配置文件,比如存放口令的配置文件。
# 排除所有.开头的隐藏文件:
.*
# 排除所有.class文件:
*.class
# 不排除.gitignore和App.class:
!.gitignore
!App.class
- .gitignore文件本身要放到版本库里,并且可以对.gitignore做版本管理!
- 忽略某些文件时,需要编写.gitignore;