首页 后端开发 php教程 git操作常用命令的汇总

git操作常用命令的汇总

Jul 17, 2017 pm 03:11 PM
操作 整理

常用命令汇总

一、                       回退到某一个节点,通过如下命令:

Git reset –hard HASH 返回到某一个节点,不保留修改 如:

Git reset –hard HASH 返回到某一节点,保留修改。

 

二、                       本地所有的修改。没有提交的,都返回到原来的状态。

Git checkout .

Git checkout 版本库   表示切换版本库如:git checkout dev 切换到dev版本库

Git checkout 文件地址  表示取消该文件的修改如:git checkout backend/controller/site 

三、                       查看提交日志

Git log

四、                       查看分支

Git branch 不带参数:列出本地分支,当前所在的分支前面会有一个*号

五、                       处理LF问题

问题出现的原因是window和Linux空格和换行转化的不一致导致的,处理办法如下:

配置全局变量git config --global core.autocrlf false

查看全局变量 git config –global –l来查看全局变量

mkdir learngit   //创建一个文件夹

cd learngit    //切换当前目录

pwd     //显示当前目录完整路径

git init   //初始化目录

ls -ah   //显示当前目录所有文件,包括隐藏文件

cd.>readme.txt  //创建一个空文件

git add readme.txt  //把文件添加到git仓库

git commit -m “wrote a readme file”  //提交文件,加上改动说明

git status  //查看当前仓库文件改动状态

git diff    //是工作区(work dict)和暂存区(stage)的比较

git diff --cached  //是暂存区(stage)和分支(master)的比较

修改文件内容后git status会提示use "git add" and/or "git commit -a" 注意先add后commit,不可以直接commit

git log   //查看git提交记录,包括时间和提交人等详细信息

git log --pretty=oneline  //只查看版本号和提交说明

git reset --hard HEAD^  //回滚上个版本

git reset --hard HEAD^^   //回滚上上个版本

git reset --hard HEAD~100  //回滚前100个版本

git reset --soft HEAD //回退时不重置缓存区和工作区

git reset --mixed HEAD //回退时重置缓存区, 默认选项

git reset --hard HEAD //回退时重置缓存区和工作区

git reset //不指定HEAD, 用来清空缓存区的修改

git reset filename //清空缓存区指定文件的修改

git reset --hard //不指定HEAD, 用来清空工作区和缓存区的修改

git reset --hard filename //清空工作区和缓存区指定文件的修改

cat readme.txt  //查看文件内容

 

回滚后如果想撤回,有两种方式

1)需要在没有关闭原来的终端窗口,找回最新的版本号,输入前面几位数字,例如

git reset --hard ec6980a

2)关闭了终端窗口,重新打开,输入git reflog ,查看操作的每一条记录,找回版本号回滚

 

git checkout -- file //撤消工作区操作,有两种情况,1、未添加到缓存区前,是撤消本地工作区修改,2、已添加缓存区后,是撤消缓存后的修改,还原缓存的版本

git checkout -- file命令中的--很重要,没有--,就变成了“切换到另一个分支”的命令

git checkout branch //切换branch, 同时重置缓存区和工作区, 如果工作区有修改没有提交, 需要先commit或stash

git checkout branch --force //切换branch, 同时重置缓存区和工作区

git checkout --force //不指定branch, 用来清空工作区的修改(缓存区不变, 如果之前有add, 则工作区与缓存区一致)

 

git reset HEAD fileName  //可以把暂存区的修改撤销掉(unstage)

 

rm test.txt  //文件管理器上删除文件,注意本地删除要与仓库对应

git rm text.txt   //删掉远程仓库文件,然后提交git commit

git checkout -- test.txt //假设本地rm误删了文件,可以用指令从仓库复制一份最新到本地,用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”

 

ssh-keygen -t rsa -C “liwenxin@foreveross.com"  //设置本地关联的帐号信息 ,一路回车,不要设密码直接为空。

open ~/.ssh //mac打开主目录的ssh

cd ~/.ssh    //如果前面的步骤不小心输入了密码,可以参照以下方式重新设为空密码

ssh-keygen -p -f id_rsa  //按要求输入一次旧密码两次新密码

 

git remote add origin git@github.com:gz-jam/learngit.git  //替换成你自己的GitHub账户名,本地关联远程库

git remote rm origin //如果关联错了 或者 需要重新绑定 

git remote add origin git@github.com:michaelliao/learngit.git  //可以重新绑定

 

git push -u origin master  //本地库的所有内容推送到远程库,输入yes确认,把当前分支master推送到远程,由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。

git push origin master   //第二次开始可以不用 -u

 

git clone git@github.com:michaelliao/gitskills.git  //克隆远程仓库,Git支持多种协议,默认的git://使用ssh,但也可以使用https等其他协议。例如https://github.com/gz-jam/gitskills.git

 

git checkout -b dev //创建分支并切换当前分支到dev,相当于执行了两条指令,如git branch dev 和 git checkout dev

git branch //查看当前项目的所有分支,前面有*代表当前生效的分支

git merge dev  //用于合并指定分支到当前分支

git branch -d dev  //合并后可以考虑删除多余项目分支

git branch -D dev  //分支提交文件未合并,如果删除会提示尚未合并,是否要强行删除 注意大写D

 

当两边分支各自在相同文件有提交内容,Git无法执行“快速合并”,此时需要先执行git status,Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容,调整完后重新git add 文件,然后git commit提交文件即可解决冲突

git log --graph --pretty=oneline --abbrev-commit  //可以看到分支的合并情况

git log --graph //这命令也可以看到分支合并图

 

git merge --no-ff -m "merge with no-ff" dev  //禁用Fast forward模式,Git就会在merge时生成一个新的commit

 

git stash  //当前分支工作未完成但又不想提交仓库,可先用指令保存,保证切换其它分支不会导致代码丢失

git stash list //查看stash内容,恢复的方式有两种,一是用git stash apply stash@{0}恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除;另一种方式是用git stash pop,恢复的同时把stash内容也删了

 

git remote  //查看远程库的信息

git remote -v   //显示更详细的信息

git push origin master //推送分支,就是把该分支上的所有本地提交推送到远程库,推送时,要指定本地分支

本地新建的分支如果不推送到远程,对其他人就是不可见的

从本地推送分支,使用git push origin branch-name

git checkout -b dev origin/dev //创建远程origin的dev分支到本地,默认分支master

 

git push  //发生冲突的时候,先git pull拉取代码

git pull //如果失败的话,提示“no tracking information”,原因可能是没有指定本地dev分支与远程origin/dev分支的链接

git branch --set-upstream-to=origin/dev dev  //设置dev和origin/dev的链接

合并有冲突,需要手动解决,解决的方法如前面所说,git status,然后手动修复,再git add 和git commit ,最后git push

 

git tag v1.0  //commit号太长不好记,可以在分支上打标签

git tag v0.9 6224937  //在分支上为指定的的commit号打上标签

标签不是按时间顺序列出,而是按字母排序的。可以用git show 查看标签信息

例如  git show v0.9

git tag -a v0.1 -m "version 0.1 released" 3628164  //创建带有说明的标签,用-a指定标签名,-m指定说明文字

git tag -d v0.1  //标签打错了,也可以删除

创建的标签都只存储在本地,不会自动推送到远程。如果要推送某个标签到远程,使用命令git push origin

例如: git push origin v1.0

或者,一次性推送全部尚未推送到远程的本地标签

例如: git push origin --tags

如果标签已经推送到远程,要删除远程标签就麻烦一点,先从本地删除,git tag -d v0.9;然后,从远程删除。删除命令也是push,但是格式如下git push origin :refs/tags/v0.9 或 git push origin --delete tag v0.9

以上是git操作常用命令的汇总的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
4 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

PyCharm使用教程:详细指引你运行操作 PyCharm使用教程:详细指引你运行操作 Feb 26, 2024 pm 05:51 PM

PyCharm是一款非常流行的Python集成开发环境(IDE),它提供了丰富的功能和工具,使得Python开发变得更加高效和便捷。本文将为大家介绍PyCharm的基本操作方法,并提供具体的代码示例,帮助读者快速入门并熟练操作该工具。1.下载和安装PyCharm首先,我们需要前往PyCharm官网(https://www.jetbrains.com/pyc

什么是 sudo,为什么它如此重要? 什么是 sudo,为什么它如此重要? Feb 21, 2024 pm 07:01 PM

sudo(超级用户执行)是Linux和Unix系统中的一个关键命令,允许普通用户以root权限运行特定命令。sudo的功能主要体现在以下几个方面:提供权限控制:sudo通过授权用户以临时方式获取超级用户权限,从而实现了对系统资源和敏感操作的严格控制。普通用户只能在需要时通过sudo获得临时的特权,而不需要一直以超级用户身份登录。提升安全性:通过使用sudo,可以避免在常规操作中使用root账户。使用root账户进行所有操作可能会导致意外的系统损坏,因为任何错误或不小心的操作都将具有完全的权限。而

Linux Deploy的操作步骤及注意事项 Linux Deploy的操作步骤及注意事项 Mar 14, 2024 pm 03:03 PM

LinuxDeploy的操作步骤及注意事项LinuxDeploy是一款强大的工具,可以帮助用户在Android设备上快速部署各种Linux发行版,让用户能够在移动设备上体验到完整的Linux系统。本文将详细介绍LinuxDeploy的操作步骤以及注意事项,同时提供具体的代码示例,帮助读者更好地使用这一工具。操作步骤:安装LinuxDeploy:首先在

win10开机密码忘记按F2怎么操作 win10开机密码忘记按F2怎么操作 Feb 28, 2024 am 08:31 AM

想必很多的用户家里都有那么几台不用的电脑,因为长时间不用完全忘记了开机密码,于是想要知道一下,忘记密码要怎么操作呢?那就一起来看看吧。win10开机密码忘记按F2怎么操作1、按下电脑的电源键,然后开机时按下F2(不同电脑品牌进入bios的按键也不同)。2、在bios界面中,找到security选项(不同品牌电脑的位置可能有所不同)。一般都在顶部的设置菜单中。3、然后找到SupervisorPassword选项并且点击。4、这时候用户就可以看到自己的密码了,同时找到旁边的Enabled切换为Dis

如何在 iPhone 15 Pro 和 15 Pro Max 上禁用操作按钮 如何在 iPhone 15 Pro 和 15 Pro Max 上禁用操作按钮 Nov 07, 2023 am 11:17 AM

Apple在iPhone15Pro和15ProMax中带来了一些Pro独有的硬件功能,吸引了所有人的注意力。我们正在谈论钛合金框架、时尚的设计、全新的A17Pro芯片组、令人兴奋的5倍长焦镜头等等。在iPhone15Pro机型添加的所有花里胡哨的功能中,操作按钮仍然是一个突出和突出的功能。毋庸置疑,它是在iPhone上启动操作的有用补充。也就是说,您可能会不小心按住“操作”按钮并无意中触发功能。坦率地说,这很烦人。要避免这种情况,您应该禁用iPhone15Pro和15ProMax上的操作按钮。让

华为Mate60 Pro截屏操作步骤分享 华为Mate60 Pro截屏操作步骤分享 Mar 23, 2024 am 11:15 AM

随着智能手机的普及,截屏功能成为日常使用手机的必备技能之一。华为Mate60Pro作为华为公司的旗舰手机之一,其截屏功能自然也备受用户关注。今天,我们就来分享华为Mate60Pro手机的截屏操作步骤,让大家能够更加便捷地进行截屏操作。首先,华为Mate60Pro手机提供了多种截屏方式,可以根据个人习惯选择适合自己的方式进行操作。下面详细介绍几种常用的截

自定义操作按钮:探索iPhone 15 Pro的个性化设置 自定义操作按钮:探索iPhone 15 Pro的个性化设置 Sep 24, 2023 pm 03:05 PM

苹果的iPhone15Pro和iPhone15ProMax引入了一个新的可编程动作按钮,取代了音量按钮上方的传统响铃/静音开关。继续阅读以了解“操作”按钮的功能,以及如何对其进行自定义。苹果iPhone15Pro型号上全新的动作按钮取代了激活Ring和Silent的传统iPhone开关。默认情况下,新按钮仍会通过长按激活这两个功能,但您也可以让长按执行一系列其他功能,包括快速访问相机或手电筒、激活语音备忘录、对焦模式、翻译和放大镜等辅助功能。您还可以将其与单个快捷方式相关联,从而开辟大量其他可能

CSS网页滚动监听:监听网页滚动事件并执行相应的操作 CSS网页滚动监听:监听网页滚动事件并执行相应的操作 Nov 18, 2023 am 10:35 AM

CSS网页滚动监听:监听网页滚动事件并执行相应的操作随着前端技术的不断发展,网页的效果和交互也越来越丰富多样。其中,滚动监听是一种常见的技术,可以实现在用户滚动网页时,根据滚动位置执行一些特效或者操作。一般来说,滚动监听可以通过JavaScript来实现。但是,在某些情况下,我们也可以通过纯CSS来实现滚动监听的效果。本文将介绍如何通过CSS来实现网页的滚动

See all articles