git操作常用命令的汇总
常用命令汇总
一、 回退到某一个节点,通过如下命令:
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中文网其他相关文章!

热AI工具

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

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

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

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

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

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

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

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

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

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

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