99%的时间在使用的git命令

nopassword nopassword     2022-09-28     180

关键词:

转自呆兔兔

 

Git是目前最流行的分布式版本控制系统,它是Linus献给软件行业的两件礼物之一,另外一件礼物是目前最大的服务器系统软件Linux。

Git出现之前,linux的源代码使用BitMover公司的BitKeeper进行版本控制。这是一个商业的版本控制系统,一开始授权Linux社区免费使用,后来由于某种原因,BitMover公司打算收回了Linux社区的免费使用权。这个时候,Linus花了两周时间自己用C写了一个分布式版本控制系统,并在一个月之内托管了linux系统的源码,这一年,是2005年。

最常用的4条命令

Git是一个非常强大的工具,各种命令组合上千种。不过,我们90%的时间估计都在用这4条命令。

$ git status # 查看工作区和缓冲区状态
$ git add --all # 将工作区修改暂存到缓冲区
$ git commit -m"<comment>" # 提交到仓库
$ git push origin master # 推送到远程分支

如果只是个人开发,几天便结束的小项目,使用Git仅为了方便回退到某个点,记录开发进度,这几条命令当然就够了。

为了合作与规范,这还远远不够

关联远程仓库

  • 如果还没有Git仓库,你需要
$ git init
  • 如果你想关联远程仓库
$ git remote add <name> <git-repo-url>
# 例如 git remote add origin https://github.com/xxxxxx
  • 如果你想关联多个远程仓库
$ git remote add <name> <another-git-repo-url>
# 例如 git remote add coding https://coding.net/xxxxxx

是远程仓库的名称,通常为 origin

  • 忘了关联了哪些仓库或者地址
$ blog-react git:(master) git remote -v
# origin https://github.com/gzdaijie/koa-react-server-render-blog.git (fetch)
# origin https://github.com/gzdaijie/koa-react-server-render-blog.git (push)
  • 如果远程有仓库,你需要clone到本地
$ git clone <git-repo-url>

关联的远程仓库将被命名为origin,这是默认的。

  • 如果你想把别人仓库的地址改为自己的
$ git remote set-url origin <your-git-url>

切换分支

  • 新建仓库后,默认生成了master分支
  • 如果你想新建分支并切换
$ git checkout -b <new-branch-name>
# 例如 git checkout -b dev
# 如果仅新建,不切换,则去掉参数 -b
  • 看看当前有哪些分支
$ git branch
# * dev
#   master

标*号的代表当前所在的分支

  • 看看当前本地&远程有哪些分支
$ git branch -a
# * dev
#   master
#   remotes/origin/master
  • 切换到现有的分支
$ git checkout master
  • 你想把dev分支合并到master分支
$ git merge <branch-name>
# 例如 git merge dev
  • 你想把本地master分支推送到远程去
$ git push origin master

你可以使用git push -u origin master将本地分支与远程分支关联,之后仅需要使用git push即可。

  • 远程分支被别人更新了,你需要更新代码
$ git pull origin <branch-name>

之前如果push时使用过-u,那么就可以省略为git pull

  • 本地有修改,能不能先git pull
$ git stash # 工作区修改暂存
$ git pull  # 更新分支
$ git stash pop # 暂存修改恢复到工作区

撤销操作

  • 恢复暂存区文件到工作区
$ git checkout <file-name>
  • 恢复暂存区的所有文件到工作区
$ git checkout .
  • 重置暂存区的某文件,与上一次commit保持一致,但工作区不变
$ git reset <file-name>
  • 重置暂存区与工作区,与上一次commit保持一致
$ git reset --hard <file-name>

如果是回退版本(commit),那么file,变成commit的hash码就好了。

  • 去掉某个commit
$ git revert <commit-hash>

实质是新建了一个与原来完全相反的commit,抵消了原来commit的效果

版本回退与前进

  • 查看历史版本
$ git log
  • 你可能觉得这样的log不好看,试试这个
$ git log --graph --decorate --abbrev-commit --all
  • 检出到任意版本
$ git checkout a5d88ea

hash码很长,通常6-7位就够了

  • 远程仓库的版本很新,但是你还是想用老版本覆盖
$ git push origin master --force
# 或者 git push -f origin master
  • 觉得commit太多了?多个commit合并为1个
$ git rebase -i HEAD~4

这个命令,将最近4个commit合并为1个,HEAD代表当前版本。将进入VIM界面,你可以修改提交信息。推送到远程分支的commit,不建议这样做,多人合作时,通常不建议修改历史。

  • 想回退到某一个版本
$ git reset --hard <hash>
# 例如 git reset --hard a3hd73r

--hard代表丢弃工作区的修改,让工作区与版本代码一模一样,与之对应,--soft参数代表保留工作区的修改。

  • 想回退到上一个版本,有没有简便方法?
$ git reset --hard HEAD^
  • 回退到上上个版本呢?
$ git reset --hard HEAD^^

HEAD^^可以换作具体版本hash值。

  • 回退错了,能不能前进呀
$ git reflog

这个命令保留了最近执行的操作及所处的版本,每条命令前的hash值,则是对应版本的hash值。使用上述的git checkout 或者 git reset命令 则可以检出或回退到对应版本。

  • 刚才commit信息写错了,可以修改吗
$ git commit --amend
  • 看看当前状态吧
$ git status

配置属于你的Git

  • 看看当前的配置
$ git config --list
  • 估计你需要配置你的名字
$ git config --global user.name "<name>"

--global为可选参数,该参数表示配置全局信息

  • 希望别人看到你的commit可以联系到你
$ git config --global user.email "<email address>"
  • 有些命令很长,能不能简化一下
$ git config --global alias.logg "log --graph --decorate --abbrev-commit --all"

之后就可以开心地使用 git logg

最后

这篇文章是对平时工作中最常用到的命令的一个总结,无论是初学者,还是已经使用了Git几年的你,都能有所收获吧。

如果你是第一次接触Git,那么这篇文章并不适合你,你需要先去了解Git的四个状态、三个区等概念。

git的常用命令

...以供编码者使用,如果不是特别需要的话,就没必要花大时间,大精力去深入研究Git,只需要掌握其基础常用的几个命令就行了。 当需要使用Git管理代码时,首先需要在项目的根目录下创建git库。  gitinit(在当前目录下... 查看详情

git和github简单教程

...用,有的命令太多,使得初期学习的时候需要额外花不少时间在一些当前用不到的命令上。这篇文章主要的目标是用较少的时间学习Git和GitHub的基本使用。在足够一般使用的前提下,尽量减少命令。如果需要其他命令,到时候再... 查看详情

git的基本使用

...以使用gitlog命令查看Git仓库的提交记录,包括每次提交的时间、提交人、提交信息等。分支管理:可以使用gitbranch命令创建和管理Git分支。例如,gitbranchfeature可以创建一个名为"feature"的新分支。切换分支:可以使用gitchec... 查看详情

git命令使用总结

...处理任何或小或大的项目。我们在开发和管理过程中,是使用特别频繁的一个工具。1.1但我们使用git的一般工作流程如下:克隆Git资源作为工作目录。在克隆的资源上添加或修改文件。如果其他人修改了,你可以更新资源。在提... 查看详情

git和github简单教程(代码片段)

...用,有的命令太多,使得初期学习的时候需要额外花不少时间在一些当前用不到的命令上。这篇文章主要的目标是用较少的时间学习Git和GitHub的基本使用。在足够一般使用的前提下,尽量减少命令。如果需要其他命令,到时候再... 查看详情

常用的git命令整理

之前一直忙于项目苦于没有时间总结,今天刚好有时间特来总结一下在工作中常用到的代码版本管理器Git。至于为什么要用Git?Git相比SVN有哪些好处?我就不多说了,前人已经总结的很好。今天主要介绍的是常用的Git命令。Git工... 查看详情

git命令的使用情况唐家炜

在之前的学院实训和李幼萌老师的课设之中,我和我的小组都用到了git进行代码管理。但是都用到了一个可视化工具,sourcetree。在这个工具里,不需要敲git命令,全都是可视化界面。本次是我第一次接触git命令,还需要更多学... 查看详情

命令行 git 命令突然要求输入密码

...英文标题】:Commandlinegitcommandssuddenlyaskingforpassword【发布时间】:2022-01-0814:04:47【问题描述】:在过去的三周里,我一直在使用OSX钥匙串来管理我的GitHub凭据。每当我需要更新时,我都会照常进行:gitpulloriginmaster使用此命令,钥... 查看详情

如何在 MATLAB 中计算 99% 的覆盖率?

...覆盖率?【英文标题】:Howtocompute99%coverageinMATLAB?【发布时间】:2011-01-2400:09:51【问题描述】:我在MATLAB中有一个矩阵,我需要找到每列的99%值。换句话说,99%的人口具有比它更大的值。MATLAB中有这个函数吗?【问题讨论】:【... 查看详情

这个 git log 命令运行的时间越长,我使用的越多,如何让它运行得更快?

】这个gitlog命令运行的时间越长,我使用的越多,如何让它运行得更快?【英文标题】:ThisgitlogcommandistakesalongertorunthemoreIuseit,howdoImakeitrunfaster?【发布时间】:2014-11-2617:46:47【问题描述】:我碰巧在使用gitsvn网桥,我不确定这是... 查看详情

git的使用基于命令行(代码片段)

一、检查Git使用Git前先检查本机上是否安装了Git,Mac上默认都是安装了Git的1、打开终端,输入指令,如果已经安装了Git就会显示版本号gitversion2、如果尚未安装Git,可以通过Xcode的CommandLineTools并使用如下命令安装Gitxcode-select--inst... 查看详情

我们如何通过 git 在 windows 上使用 linux 命令?

...【英文标题】:howcanweuselinuxcommandsonwindowsthroughgit?【发布时间】:2015-05-3113:23:13【问题描述】:“我们都在git中甚至在windows中使用linux命令。我想知道它是如何让这些linux命令在windows上运行的?”【问题讨论】:【参考方案1】:... 查看详情

git的使用

...,来看看git如何工作的把! 分布式: 可以看出,使用git,每个电脑都有完整的版本号和日志信息。且没有网的时候,git照样可以工作,只是把代码提交到本地,待有网在提交到远程git仓库就算哪天git服务器坏了也没事,... 查看详情

学习git的使用--在当地的简单命令--01

<----------git安装完成后操作----------------->gitconfig--globaluser.name"scy"添加用户名gitconfig--globaluser.email"[email protected]"添加用户邮箱<-------创建版本库-------->(工作区指的是文件夹下,暂存指的是git)cdD:进入你的一个指定为 查看详情

UICollectionView 的 99% CPU 使用率 - 显着位置更改未调用“didUpdateLocations”

...-SignificantLocationChangenotcalling"didUpdateLocations"【发布时间】:2016-02-1713:17:08【问题描述】:有效的是,应用程序会在位置发生重大变化时启动到后台。在Ap 查看详情

怎么才能在windows使用git命令

在windows使用git命令方法如下(以win7为例):1、msysgit是Windows版的Git可以百度搜索Git下载。2、安装完成后,开始菜单里找到“Git”->“GitBash”打开Git。3、注册用户信息:首先配置你的用户信息的Git命令。$gitconfig--globaluser.name"Y... 查看详情

git的使用

1Git简介Git是目前世界上最先进的分布式版本控制系统(没有之一)。2Windows上安装Git在网上下载国内镜像Git的安装程序安装完成后,在开始菜单里找到“Git”->“GitBash”,蹦出一个类似命令行窗口的东西,就说明Git安装成功!... 查看详情

如何使用 git 命令行区分两个未跟踪的文本文件 [重复]

...】:Howtodifftwountrackedtextfilesusinggitcommandline[duplicate]【发布时间】:2019-09-0904:50:31【问题描述】:假设您在git存储库中有一个被忽略文件排除的文件夹一个.txtb.txt文件由应用程序动态重新生成,并且永远不会包含在存储库中。我想... 查看详情