获取远端库最新信息

这一句会将远程origin的所有分支更新都下载到本地的索引库
$ git fetch origin

比较diff

对比工作目录与下载索引库的差别
$ git diff master origin/master

将origin/master合并到本地的master分支

可以使用git checkout 切换本地分支
以下代码是将下载的远程更新与本地分支合并
$ git merge origin/master

切换到master分支

$ git checkout master

Issue的意思,一般来说,这个就是版本发布说明。比如本次更新了什么功能,修复了什么bug什么的。

一般情况下,提交 Git 时的注释可以分成几类,可以用几个动词开始
* Added ( 新加入的需求 ) * Fixed ( 修复 bug ) * Changed ( 完成的任务 ) * Updated ( 完成的任务,或者由于第三方模块变化而做的变化 )

尽量将注释缩减为一句话,不要包含详细的内容。

  • 假如有 Issues 系统,其中可以包含 Issue 的 ID。比如:Issue #123456
  • 包含作者的信息。比如 by Bruce
  • 完整例子:git commit -m 'Issue #[issue number] by [username]: [Short summary of the change].'

git 放弃本地修改 强制更新

git fetch --all
git reset --hard origin/master
git fetch 只是下载远程的库的内容,不做任何的合并
git reset 把HEAD指向刚刚下载的最新的版本

git add 详解

git add <path> 表示 add to index only files created or modified and not those deleted
我通常是通过 git add <path> 的形式把我们添加到索引库中,可以是文件也可以是目录。
git不仅能判断出中,修改(不包括已删除)的文件,还能判断出新添的文件,并把它们的信息添加到索引库中。

git add -u

git add -u 表示 add to index only files modified or deleted and not those created
git add -u [<path>]: 把中所有tracked文件中被修改过或已删除文件的信息添加到索引库。它不会处理untracted的文件。
省略表示.,即当前目录。

git add -A

git add -A: []表示把中所有tracked文件中被修改过或已删除文件和所有untracted的文件信息添加到索引库。
省略表示.,即当前目录。

git add -i

我们可以通过git add -i []命令查看中被所有修改过或已删除文件但没有提交的文件,
并通过其revert子命令可以查看中所有untracted的文件,同时进入一个子命令系统。
比如:

 git add -i  
           staged     unstaged path
  1:        +0/-0      nothing branch/t.txt
  2:        +0/-0      nothing branch/t2.txt
  3:    unchanged        +1/-0 readme.txt
  Commands
   1: [s]tatus     2: [u]pdate     3: [r]evert     4: [a]dd untracked
   5: [p]atch      6: [d]iff       7: [q]uit       8: [h]elp
 What now>  

这里的t.txt和t2.txt表示已经被执行了git add,待提交。即已经添加到索引库中。
readme.txt表示已经处于tracked下,它被修改了,但是还没有被执行了git add。即还没添加到索引库中。

git clean -df

如果本地新建的文件比较多,而且还没有通过git add添加到缓冲区,则可通过

git clean -df

一次性永久删除。

删除本地分支

git branch -d dev

删除远程分支

git push origin --delete dev

修改本地推送到远程的默认分支

git branch --set-upstream-to=origin/zhj

git推送给所有分支

git push --all