统一概念: 

  • 工作区:增删文件和内容

  • 暂存区:键入命令 git add 改动的文件,此次改动就放到了 『暂存区』

  • 本地仓库 :键入命令 git commit ,此次改动就放到了『本地仓库』,每个 commit,我叫它为一个 『版本』。

  • 远程仓库:键入命令 git push 到远程仓库,此次改动就放到了 『远程仓库』。

  • commit-id:输出命令 git log,最上面那行 commit xxxxxx,后面的字符串即 commit-id。

 

  清理git的缓存:

$ git rm -r --cached .       // 清空当前文件夹的所有缓存(本地的依然保存)
$ git rm -f .            // 将当前文件夹的文件清空,本地文件也会清空,回收站也找不到,该指令请谨慎执行
$ git clean -df .        // 本地文件同样会被删除,回收站也找不到,该指令请谨慎执行

  查看当前git的状态:

$ git status

  查看远程仓库:

$ git remote        //简写
$ git remote -v     //全程    

  修改之后的文件以及新添加的文件,在commit之前都需要先 add:(以 tmp.py 文件和 data 文件夹为例)

$ git add tmp.py         // 添加单个文件
$ git add data/          // 添加一个目录下的所有文件
$ git add tmp.py data/     // 添加多个文件或者文件夹  

  重命名文件,将 main.py 重命名为 module.py:

$ git mv main.py module.py

  commit到本地仓库:

$ git commit -m "说明文字"

  推送到远程仓库:

$ git push [remote-name] [branch-name]

当 remote-name 为 origin,branch-name 为 master时,git push origin master。

  直接取消上一次 commit:

$ git reset HEAD~1
$ git reset --hard HEAD~1    // 加上参数“--hard”则不保留当前更改

  如果想撤回上一次 add:

$ git reset HEAD          // 如果后面什么都不跟的话 就是上一次 add 里面的全部撤销了 
$ git reset HEAD tmp.py     // 就是对某个文件进行撤销了

  文件 .gitignore 的用法:

# 写在 .gitignore 中的文件/文件夹都不会加入到 git 仓库中,当然前提是该文件/文件夹之前就不在仓库中,否则还是被 add 进来。如:
# 文件
*.pyc
tmp.py
# 文件夹
.idea/
__pycache__/

  git 删除远程仓库: 

$ git remote rm origin

  git 添加远程仓库,并将其命名为 origin:(git 仓库改成自己的即可)

$ git remote add origin https://github.com/wuliytTaotao/Learning-Materials.git 

  统计本地仓库和远程仓库之间的的改动:(将 local_brach、origin/remote_branch 改成自己定义的名字,如 master)(如果本地仓库只是远程仓库历史中的某个节点,下面语句是不会显示有什么不同的。)

$ git diff --stat local_branch origin/remote_branch

  git diff 的一些用法:

$ git diff                  // 输出工作区和暂存区的 different (不同)。
$ git diff <commit-id> <commit-id>    // 还可以显示本地仓库中任意两个 commit 之间的文件变动:
$ git diff --cached             // 输出暂存区和本地最近的版本 (commit) 的 different(不同)。
$ git diff HEAD               // 输出工作区、暂存区 和本地最近的版本 (commit) 的 different (不同)。 

  git log 怎么退出到命令行?输入字母 'q' 即可。

 

References

走在前沿的弄潮儿,怎能不会Git的那些奇技淫巧 -- 机器之心

转载于:https://www.cnblogs.com/wuliytTaotao/p/9781457.html

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐