草庐IT

Git命令行大全

左耳君 2023-06-30 原文

前言

其实在很久之前想写这个文章,但是吧,又觉得这个东西大家都是最常用的,应该大家都比较熟悉,但是呢,在实际工作中还是有很多人不太会使用使用Git命令行,或者连Git的客户端工具都不太会使用,可怕

其实这个东西如果只是用来工作中的开发使用,倒也是没必要去为之买本书而研究,只需要稍微理解原理,学会使用常用命令即可

本文假设的是大家有一定的Git基础,这一篇的作用是介绍Git的命令行,解释每个的命令的作用

我这篇文章默认大家对Git是有一定了解的,也就是关于上面这些理论啥的大概应该是懂得,我也就不多啰嗦了,个人操作的是工作区,add之后会提交到一个暂存区stage,commit之后会提交到本地仓库,push是提交到远程仓库

Git是世界上目前最先进的分布式版本控制系统,为的就是解决那种多人协作、多次修改的问题

最顺利提交

先来给大家熟悉下Git的仓库的划分情况:Git是目前世界上最先进的分布式版本控制系统(没有之一)。

先来给大家熟悉下Git的仓库的划分情况:Git是目前世界上最先进的分布式版本控制系统(没有之一)。

配置和创建版本库、分支命令、tag命令、修改和提交、撤销、查看历史、

配置和创建版本库

查看配置:git config --list

配置/修改用户名:git config --global user.name “name”

配置/修改邮箱:git config --global user.email “email”

检出仓库:git clone git://github.com/jquery/jquery.git

查看远程仓库:git remote -v

添加远程仓库:git remote add [name] [url]

删除远程仓库:git remote rm [name]

拉取远程仓库:git pull [remoteName] [localBranchName]

推送远程仓库:git push [remoteName] [localBranchName]

分支命令

查看远程所有分支:git branch -r

查看本地所有分支:git branch

查看所有分支:git branch -a

创建本地分支:git branch [name] 创建后需要手动切换分支

创建远程分支:git push origin [name]

创建新分支并且立即切换到新分支:git checkout -b [name]

切换分支:git checkout [name]

删除本地分支:git branch -d/-D [name] -D用来强制删除 -d只能删除已经参与了合并的分支,对于未有合并的分支是无法删除的

删除远程分支:git push origin --delete [name]

强制覆盖本地代码:git fetch --all && git reset --hard origin && git pull

合并分支:git merge [name] 将name分支合并到当前分支

查看当前状态:git status

tag命令

查看版本:git tag

创建版本:git tag [name]

删除版本:git tag -d [name]

查看远程版本:git tag -r

创建远程版本:git push origin [name]

删除远程版本:git push origin --delete [name]

合并远程仓库的tag到本地:git pull origin --tags

上传本地tag到远程仓库:git push origin --tags

创建带注释的tag:git tag -a [name] -m ‘message’

修改和提交代码

查看状态:git status

查看变更内容:git diff

添加修改文件到暂存区:git add [file]

添加所有修改文件到暂存区:git add .

文件改名:git mv [old] [new]

删除文件:git rm [file]

提交所有暂存区文件到本地仓库:git commit -m ‘message’

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

推送本地仓库到远程仓库:git push origin [name]

合并分支代码:git merge [name] 将name分支合并到当前分支

撤销代码

对某个文件的add撤销:git reset HEAD xxx.java

对所有文件的add撤销:git reset HEAD

对文件的commit撤销:git reset --hard HEAD

git reset [–mixed --soft --hard] commitID有三种参数,熟悉这三个参数的含义

–mixed代表撤销git add和git commit的操作,保留编辑器的代码;

–soft代表撤销git commit,不撤销git add操作,同时保留编辑器的代码;

–hard参数很暴力,直接撤销commit和add的操作,撤销所有改动的代码,当你决定用–hard参数的时候,就代表着你应该已经决定了放弃修改过的所有代码咯

push操作的撤销:git reset commitID / git revert commitID

reset则是回到某次提交,此次提交以及之前的Commit都会被保留,但是此次之后的修改都会被退回到暂存区

revert则是生成一次新的Commit提交来撤销某次提交,此次提交之前的Commit都会被保留,可以理解成把相应版本的代码删除掉,再次提交

查看信息

查看当前分支的版本和历史:git log

显示commit历史,以及每次Commit的发生变更的文件:git log --stat

根据关键字搜索提交历史:git log -S [keyword]

显示某个文件的版本历史,包括文件改名:git log --follow [file]

显示过去五次的提交:git log -5 --pretty --oneline

显示所有提交过的用户,按照提交次数排序:git shortlog -sn

显示指定文件是什么人在什么时间修改过:git blame [file]

显示暂存区和工作区的差异:git diff

显示当前分支的最近几次提交:git reflog

新建Git代码库:git init

查看当前文件状态:git status

远程同步

下载远程仓库的所有变动:git fetch [remote]

显示所有远程仓库:git remote -v

显示某个远程仓库的信息:git remote show [remote]

增加一个新的远程仓库并命名:git remote add [shortname] [url]

上传本地指定分支到远程仓库:git push [remote] [branch]

强行推送当前分支到远程仓库:git push [remote] --force

推送所有分支到远程仓库:git push [remote] --all

结束语

感谢大家能够做我最初的读者和传播者,请大家相信,只要你给我一

份爱,我终究会还你们一页情的。

欢迎大家关注我的公众号【左耳君】,探索技术,分享生活

哦对了,后续所有的文章都会更新到这里

https://github.com/DayuMM2021/Java

有关Git命令行大全的更多相关文章

  1. ruby - 在 Ruby 中编写命令行实用程序 - 2

    我想用ruby​​编写一个小的命令行实用程序并将其作为gem分发。我知道安装后,Guard、Sass和Thor等某些gem可以从命令行自行运行。为了让gem像二进制文件一样可用,我需要在我的gemspec中指定什么。 最佳答案 Gem::Specification.newdo|s|...s.executable='name_of_executable'...endhttp://docs.rubygems.org/read/chapter/20 关于ruby-在Ruby中编写命令行实用程序

  2. 7个大一C语言必学的程序 / C语言经典代码大全 - 2

    嗨~大家好,这里是可莉!今天给大家带来的是7个C语言的经典基础代码~那一起往下看下去把【程序一】打印100到200之间的素数#includeintmain(){ inti; for(i=100;i 【程序二】输出乘法口诀表#includeintmain(){inti;for(i=1;i 【程序三】判断1000年---2000年之间的闰年#includeintmain(){intyear;for(year=1000;year 【程序四】给定两个整形变量的值,将两个值的内容进行交换。这里提供两种方法来进行交换,第一种为创建临时变量来进行交换,第二种是不创建临时变量而直接进行交换。1.创建临时变量来

  3. ruby-on-rails - rbenv:从 RVM 移动到 rbenv 后,在 Jenkins 执行 shell 中找不到命令 - 2

    我从Ubuntu服务器上的RVM转移到rbenv。当我使用RVM时,使用bundle没有问题。转移到rbenv后,我在Jenkins的执行shell中收到“找不到命令”错误。我内爆并删除了RVM,并从~/.bashrc'中删除了所有与RVM相关的行。使用后我仍然收到此错误:rvmimploderm~/.rvm-rfrm~/.rvmrcgeminstallbundlerecho'exportPATH="$HOME/.rbenv/bin:$PATH"'>>~/.bashrcecho'eval"$(rbenvinit-)"'>>~/.bashrc.~/.bashrcrbenvversions

  4. git使用常见问题(提交代码,合并冲突) - 2

    文章目录git常用命令(简介,详细参数往下看)Git提交代码步骤gitpullgitstatusgitaddgitcommitgitpushgit代码冲突合并问题方法一:放弃本地代码方法二:合并代码常用命令以及详细参数gitadd将文件添加到仓库:gitdiff比较文件异同gitlog查看历史记录gitreset代码回滚版本库相关操作远程仓库相关操作分支相关操作创建分支查看分支:gitbranch合并分支:gitmerge删除分支:gitbranch-ddev查看分支合并图:gitlog–graph–pretty=oneline–abbrev-commit撤消某次提交git用户名密码相关配置g

  5. ruby - 从 Ruby : capturing the output while displaying the output? 运行 shell 命令 - 2

    我有一个问题。我想从另一个ruby​​脚本运行一个ruby​​脚本并捕获它的输出信息,同时让它也输出到屏幕。亚军#!/usr/bin/envrubyprint"Enteryourpassword:"password=gets.chompputs"Hereisyourpassword:#{password}"我运行的脚本文件:开始.rboutput=`runner`putsoutput.match(/Hereisyour(password:.*)/).captures[0].to_s正如您在此处看到的那样,存在问题。在start.rb的第一行,屏幕是空的。我在运行程序中看不到“输入您的密

  6. ruby - 是否有将图像文件转换为 ASCII 艺术的命令行程序或库? - 2

    有这样的事吗?我想在Ruby程序中使用它。 最佳答案 试试这个http://csl.sublevel3.org/jp2a/此外,Imagemagick可能还有一些东西 关于ruby-是否有将图像文件转换为ASCII艺术的命令行程序或库?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/6510445/

  7. ruby - 在 Ruby 的 if 语句中检查 bash 命令 - 2

    如何在Ruby的if语句中检查bash命令的返回值(true/false)。我想要这样的东西,if("/usr/bin/fswscell>/dev/null2>&1")has_afs="true"elsehas_afs="false"end它会提示以下错误含义,它总是返回true。(irb):5:warning:stringliteralincondition正确的语法是什么?更新:/usr/bin/fswscell寻找afs安装和运行状态。它会抛出这样的字符串,Thisworkstationbelongstocell如果afs没有运行,命令以状态1退出 最

  8. ruby - 可以正常中断的来自 Rake 的长时间运行的 shell 命令? - 2

    在几个项目中,我希望有一个类似rakeserver的rake任务,它将通过任何需要的方式开始为该应用程序提供服务。这是一个示例:task:serverdo%x{bundleexecrackup-p1234}end这行得通,但是当我准备停止它时,按Ctrl+c并没有正常关闭;它中断了Rake任务本身,它说rakeaborted!并给出堆栈跟踪。在某些情况下,我必须执行Ctrl+c两次。我可能可以用Signal.trap写一些东西来更优雅地中断它。有没有更简单的方法? 最佳答案 trap('SIGINT'){puts"Yourmessa

  9. ruby - Capistrano 中的执行、测试和捕获命令有什么区别? - 2

    关于SSHkit-Github它说:Allbackendssupporttheexecute(*args),test(*args)&capture(*args)来自SSHkit-Rubydoc,我明白execute实际上是test的别名?test之间有什么区别?,execute,capture在Capistrano/SSHKit中我应该什么时候使用? 最佳答案 执行只是执行命令。使用非0退出引发错误。测试方法的行为与execute完全相同,但是它返回bool值(true如果命令以0退出,而false否则)。它通常用于控制任务中的流程

  10. ruby - Dropbox 类似 git 的服务——没有 rsync 和 inotify - 2

    关于如何使用git设置类似Dropbox的服务,您有什么建议吗?您认为git是解决此问题的合适工具吗?我在考虑使用git+rush解决方案,你觉得怎么样? 最佳答案 检查这个开源项目:https://github.com/hbons/SparkleShare来自项目的自述文件:Howdoesitwork?SparkleSharecreatesaspecialfolderonyourcomputer.Youcanaddremotelyhostedfolders(or"projects")tothisfolder.Theseprojec

随机推荐