git常用命令汇总

1. git add <file> 添加到文件到版本库,也可以添加文件 git add . 或者 git add *

2. git reset HEAD <file> 取消添加到版本库

3. git commit -m “commit message” 提交修改,当版本库内容有修改时才可以修改(即使用了git add命令)

提交可选的额外信息:使用两次-m 如:git commit -m "测试" -m "具体测试了功能能否实现"

修改最近一次提交:git commit --amend

4. git checkout <file> 在到撤销到添加到暂存区的状态(如果没有添加到暂存区就是回到最后一个版本的状态)

5. git reset --hard HEAD^ 回退到上一个版本,HEAD表示当前版本,加1个^表示上一个版本,2个^表示上上个版本,也可以使用具体的commit id号。

6. git log 查看提交记录

7. git reflog 使用git reset --hard之后查看在此次当前提交之后的版本的commit id

8. git rm <file> 删除某个文件(直接删除之后要使用该命令让删除的文件在版本库中添加记录)

9. git branch 查看本地分支

git branch -a 查看远程分支

git branch branch_name 查看分支名

git branch -d branch_name 删除分支

git checkout -b test 创建并切换到分支

git push orgin :branch_name 删除远程库上的分支(注意冒号前面有空格)

10. git push origin test 其中origin为添加的远程库的名称,test为远程库的分支名

11. git remote -v 查看远程版本库的信息

12. git merge dev 将dev分支合并到本分支上(如果冲突会显示在master|MERGING分支上,需要对冲突进行处理,然后在提交即可解决冲突)

13. git stash 用于存放当前现场(恢复当最后一次提交版本的状态),然后可以进行另外的一些操作,之后再进行使用git stash pop恢复现场

14. git tag tag_name [commit_id] 为提交打标签,方便之后查找

git tag -d tag_name 删除标签

git tag 显示标签

15. git push origin tag_name 将标签推到远程库

git push orgin --tags 推送所有的分支到远程库

git push orgin :refs/tags/tag_name 删除远程库上的标签

16. git remote rm origin 删除指定的远程库(origin是指定的远程库名)

git remote add orgin git@github.com:w-g-b/GuangFuAR.git (添加远程库,添加之后如果对有对仓库的修改权限基友fetch和push地址)

git remote set-url origin [url] 修改远程仓库

17. git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit" 为参数起别名(加上--global表示全局,没有加则只对当前的仓库起作用)

cat .git/config 查看本参数中的git配置文件

cat .gitconfig 查看用户的git配置文件(在用户目录下,通过cd ~命令切换)

18. git diff staging area 和working area的文件比较

git diff master master分支和working area的文件

git diff HEAD HEAD指向的内容和working area的文件

git diff refs/remotes/origin/master 用远程master分支比较当前工作区

git diff 2501b8d8bca76 ./socket_helper.cpp 用master分支的某个文件的历史版本和working area的该文件比较

 

diff的命令输出格式注意:

[plain] view plaincopy

---代表源文件  

+++代表目标文件  

通常working area的文件都是被当作目标文件来看待。

-开头的行,是只出现在源文件中的行

+开头的行,是只出现在目标文件中的行

空格开头的行,是源文件和目标文件中都出现的行

差异按照差异小结进行组织,每个差异小结的第一行都是定位语句,由@@开头,@@结尾。

[plain] view plaincopy

chenshu@chenshu-yangzhou-home:~/kaimei/data_service/src$ git diff 0c5ee16a6a4c849d0ae0448caa8ff174399c7c3c ./ socket_helper.cpp  

diff --git a/data_service/src/socket_helper.cpp b/data_service/src/socket_helper.cpp  

index d606452..047e213 100755  

--- a/data_service/src/socket_helper.cpp  

+++ b/data_service/src/socket_helper.cpp  

@@ -4,6 +4,7 @@  

 #include "data/login_response.h"  

 #include "data/heartbeat_response.h"  

 #include "helper/parser.h"  

+#include "helper/time_measure.h"  

 #include <booster/log.h>  

 #include "exception/socket_error.h"  

 #include "exception/data_error.h"  

上面的diff结果表明

1.某个提交记录0c5ee代表的socket_helper.cpp文件是源文件,当前working area的socket_helper文件是目标文件。

2.在源文件第4行开始的6行和目标文件第4行开始的7行构成一个差异小结

3.这个差异小结中,目标文件添加了一行#include "helper/time_measure.h"

4.其他空格开头的行表明没有差异。

 

 

解决 Git 重命名时遇到的大小写不敏感的问题:https://walterlv.github.io/post/case-insensitive-in-git-rename.html

设置git忽略大小写:git config core.ignorecase false

 

git push一次推送到多个远程库(https://ehlxr.me/2016/07/24/Git-%E5%90%8C%E6%97%B6-push-%E5%88%B0%E5%A4%9A%E4%B8%AA%E8%BF%9C%E7%A8%8B%E4%BB%93%E5%BA%93/

 

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值