Git 知识小结

  • 1.配置
  • 2.版本管理
  • 3.分支管理
  • 4.远程仓库
  • 5.标签管理
  • 6.自定义git
  • 7.git 工作流程



Android 项目 git忽略哪些文件 git忽略.class文件_git


1.配置

Android 项目 git忽略哪些文件 git忽略.class文件_git_02

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.版本管理

Android 项目 git忽略哪些文件 git忽略.class文件_暂存区_03

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.分支管理

Android 项目 git忽略哪些文件 git忽略.class文件_github_04

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.远程仓库

Android 项目 git忽略哪些文件 git忽略.class文件_github_05

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.标签管理

Android 项目 git忽略哪些文件 git忽略.class文件_暂存区_06

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 工作流程

Android 项目 git忽略哪些文件 git忽略.class文件_git_07