专栏首页编程大道Git常用命令-你都用过吗?

Git常用命令-你都用过吗?

Git常用命令

1、基本命令

set LESSCHARSET=utf-8 --IDE Terminal乱码(idea自带的操作git窗口) git clone 分支名 --将分支克隆到本地 git stash --将修改暂时放到暂存区,在a分支改了东西,想先切到b分支,可以先用这个命令 git stash pop --从暂存区弹出,从b再切回a,用这个命令把改的恢复 git checkout 分支名或文件名 --切换到分支 git pull --拉取最新文件(更新) //这三个通常一起使用 用于提交代码到远程分支 git add 文件名 --添加文件(用于后续提交) git commit -m "提交备注信息" --提交文件到本地分支 git push --推送到远程分支

git cherry-pick 版本号 --将a分支的某版本合并到b版本时可以用这个

2、添加了多余文件后,已经add未commit时撤销添加

git reset HEAD 文件名 --撤销某文件 git reset HEAD --全撤销

3、已经commit还未push时,回退版本号

git reset --mixed 要回退到哪个版本号(本地代码还保留着) git reset --hard 要回退到哪个版本号(本地代码不保留)

4、push后回退撤销

对于已经把代码push到远程仓库,你回退本地代码其实也想同时回退远程仓库的代码,回滚到某个指定的版本,本地、远程分支代码保持一致。 你要用revert命令

git revert用于反转提交,执行revert命令时要求工作树必须是干净的. git revert用一个新提交来消除一个历史提交所做的任何修改.

revert 之后你的本地代码会回滚到指定的历史版本,这时你再 git push 既可以把线上的代码更新.(这里不会像reset造成冲突的问题) revert 使用,需要先找到你想回滚版本唯一的commit标识代码,可以用 git log 或者在adgit搭建的web环境历史提交记录里查看.

git revert c011eb3c20ba6fb38cc94fe5a8dda366a3990c61

通常,前几位即可git revert c011eb3

git revert是用一次新的commit来回滚之前的commit git reset是直接删除指定的commit 看似达到的效果是一样的,其实完全不同.

上面我们说的如果你已经push到线上代码库, reset 删除指定commit以后,你git push可能导致一大堆冲突.但是revert 并不会.

如果在日后现有分支和历史分支需要合并的时候,reset 恢复部分的代码依然会出现在历史分支里.但是revert 方向提交的commit 并不会出现在历史分支里.

reset 是在正常的commit历史中,删除了指定的commit,这时 HEAD 是向后移动了,而 revert 是在正常的commit历史中再commit一次,只不过是反向提交,他的 HEAD 是一直向前的.

5、alias简化git命令

git config --global alias.别名 原始命令

如: git config --global alias.st status git config --global alias.ck checkout git config --global alias.ct commit

以后再使用时就可以直接用简化后的命令了,git st 对于代码管理员来说,每天都要合很多版本,如执行git cherry-pick 版本号将cherry-pick简化为cp就会少敲很多字母。

6、查看提交日志记录

一般情况下: 1、git log --查看所有提交log 可以增加参数达到不同的日志显示效果 2、git log --author 用户名--查询某用户提交记录 效果:

3、git log --author 用户名 --grep "关键词" 显示某个用户提交的,含有某关键词的记录 效果:

4、可选命令--reverse 不加这个的话默认是按时间顺序,最新提交的先显示,加这个参数的话最早提交的先显示。 5、--oneline简化显示 在3的基础上简化,只显示一行,版本号简化

效果:

6、复杂点的

git log --graph --pretty=format:'%Cred%h%Creset - %C(yellow)%d%Creset %s %Cgreen(%cr) %C(blue)<%an>%Creset' --abbrev-commit --date=relative

7、Git查看仓库地址

我们的代码仓库多了,或者用的时间长了,很长时间没有clone过了,很容易忘了clone的URL,这时候我们可以用这个命令

git remote -v

查看到当前仓库的URL

本文分享自微信公众号 - 编程大道(learn_code),作者:ITwalking

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-11-28

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Java中真的只有值传递么?

    关于这个问题应该是存在争议的。根据测试出来的结果和我们自己的经验,以及口口相传或是上学时老师讲的,我们认为是第一种。但第二种说法的呼声也很高,渐渐地我们也认为第...

    编程大道
  • 服务器上部署Java项目安装JDK还是JRE?

    在上一篇文章中,我们了解到了JDK和JRE的关系,知道了运行Java程序只需要JRE就行了。

    编程大道
  • Java的传值调用

    之所以写这篇文章是因为前些天写了一篇《Java中真的只有值传递么?》探讨了网上关于Java只有值传递的说法,当时写这篇文章的缘由是因为之前看的文章讲解的Java...

    编程大道
  • 马蜂窝的前端火了!遇到冲突不怕怼,强制提交就是干

    相信大家都在世界杯期间有意无意地看到过马蜂窝的洗脑广告,短短的15秒,品牌名就出现了6次。“旅游之前,为什么要先上马蜂窝”,这些不断重复的广告词让人犹如魔咒般印...

    前朝楚水
  • GitHub简明操作指南

    GitHub的是版本控制和协作代码托管平台。它可以让你和其他人的项目从任何地方合作。Git也是目前世界上最先进的分布式版本控制系统(没有之一)。最初编写用作Li...

    伏草惟存
  • Git快速入门

    Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。Git 是 Linus Torvalds 为了帮助管理 Linux 内核...

    100000860378
  • Git 实用命令小抄

    如果你觉得 git 很迷惑人,那么这份小抄正是为你准备的!请注意我有意跳过了 git commit、git pull/push 之类的基本命令,这份小抄的主题是...

    KEN DO EVERTHING
  • Git使用总结

    Git(读音为/gɪt/)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。

    轩辕小子
  • Github删除某个文件的所有提交记录

    Cannot rewrite branches: You have unstaged changes.

    Java那些事儿
  • 硬核!IDEA 中使用 Git 完整入门教程!

    建议: 这个是选择行结束符, windows与linux行结束符不一致; 建议选择第一个, 这样git会自动转换;

    江南一点雨

扫码关注云+社区

领取腾讯云代金券