git操作指南整理归纳

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "PingFang SC"; color: #454545 }
p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #454545; min-height: 14.0px }
p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #454545 }
p.p4 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "PingFang SC"; color: #454545; min-height: 17.0px }
p.p5 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #e4af09 }
span.s1 { font: 12.0px Helvetica }
span.s2 { font: 12.0px "PingFang SC" }
span.s3 { font: 12.0px "Hiragino Sans" }
span.s4 { font: 12.0px Helvetica; color: #e4af09 }
span.s5 { font: 12.0px "PingFang SC"; color: #454545 }

git操作指南

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 “[email protected]"  //设置本地关联的帐号信息 ,一路回车,不要设密码直接为空。

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

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

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

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

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

git remote add origin [email protected]:michaelliao/learngit.git  //可以重新绑定

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

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

git clone [email protected]: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 [email protected]{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 <tagname>查看标签信息

例如  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 <tagname>

例如: 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 tag -s v0.2 -m "signed version 0.2 released" fec145a //通过-s用私钥签名一个标签,签名采用PGP签名,因此,必须首先安装gpg(GnuPG),如果没有找到gpg,或者没有gpg密钥对,就会报错,如果报错,请参考GnuPG帮助文档配置Key

请查考:http://airk000.github.io/git/2013/09/30/git-tag-with-gpg-key

git tag -s v4.0 -u "配置GPG时填写的名字" -m "描述详细(一定要加,不写会进入VI再写。)"

创建使用指定的key签名的标签,需要使用 -u 参数来指定key:

git tag -u "rangu.dl" -s v0.2 -m "signed version 0.2 released" de4a01d

时间: 2025-01-15 00:42:49

git操作指南整理归纳的相关文章

常用git命令整理

花了一点时间来熟悉和整理git常用命令. 推荐的git学习资料:1.搜“Git Community Book 中文版.pdf”,git社区书,内容全面且简明扼要,第一推荐2.搜“Git权威指南.pdf”,国内一高人写的,非常细致深入,各种解释说明.不过,也太厚了点,可以作为文档查询3.ProGit,在这里读“http://git-scm.com/book/zh”,写得非常好,可选前面几章作为初学.但内容不足够我先扫了3的某几章,然后看1,基本足够.偶尔查询一下2. 感觉图形化的版本变迁图非常重要

Git浅出归纳理解

Git是一个分布式的版本控制工具,本篇文章从介绍Git开始,重点在于介绍Git的基本命令和使用技巧,让你尝试使用Git的同时,体验到原来一个版 本控制工具可以对开发产生如此之多的影响,文章分为两部分,第一部分介绍Git的一些常用命令,其中穿插介绍Git的基本概念和原理,第二篇重点介绍 Git的使用技巧,最后会在Git Hub上创建一个开源项目开启你的Git实战之旅 1.Git是什么 Git在Wikipedia上的定义:它是一个免费的.分布式的版本控制工具,或是一个强调了速度快的源代码管理工具.G

Git操作指南

开发过程中,会不断发现新需求,不断发现bug,这时候就需要一个好的软件来管理项目.Git提供完备的版本管理功能,用于存储.追踪目录(文件夹)和文件的修改历史,是软件开发者的必备工具,是软件公司的基础设施.Git支持软件公司的配置管理活动,追踪多个版本的开发和维护活动,及时发布软件. 安装Git: 点击下载Git, 安装成功后,在桌面上,可以看到安装后的“Git Bash”选项. 新建文件夹demo,进去之后右键单击选择菜单项Git Bash Here,弹出窗口即可操作. 生成秘钥:  在命令框中

git命令整理备忘

git命令整理备忘 参考https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 一.基本命令 打开 git bash #创建本地 git 仓库: $ cd /home/object $ git init #添加文件 $ git add readme.md #跟踪整个文件夹可以使用 git add . $ git commit -m'说明' #提交 add 到的文件 $ git comm

git相关整理

title: git相关整理 toc: false date: 2018-09-24 20:42:55 git merge 和 git merge --no--ff有什么区别? git merge命令用于合并指定分支到当前分支.默认情况下,执行快进式合并(fast-farward merge),直接通过把master指向feature来将两个分支并为一个分支,只保存master的分支信息. git merge --no--ff执行正常合并,在master分支上生成新的节点,就可以保存之前的fea

整理归纳行云管家堡垒机的产品优势

近年来,在云计算和互联网的不断冲击下,传统堡垒机产品已无法满足企业用户的运维审计需求,亟需在技术架构.产品体验上进行升级换代,于是作为传统堡垒机功能超集的全面拥抱云计算的云堡垒机应运而生.在这个大趋势下,各类云堡垒机厂商如雨后春笋般涌现出来.在众多堡垒机厂商中,小编发现行云管家作为云堡垒机的代表,在短短三年的时间内就获得了七万多家企业级客户的认可.现整理归纳了行云管家堡垒机的产品优势如下: 1.全面拥抱云计算 行云管家堡垒机在满足传统IT资产的运维与审计的同时,全面拥抱云计算特别是公有云的发展趋

Git 常见问题整理

在学习git的过程中,遇到如下问题,特整理如下: 1 error:src refspec master does not match any 问题产生 a git服务器使用如下命令新建一个项目 $ cd /opt/git $ mkdir project.git $ cd project.git $ git --bare init b 客户端clone代码并提交 $ cd myproject $ git init $ git add . $ git commit -m 'initial commi

程序员能用一年的git技能整理

用git有一年了,下面是我这一年来的git使用总结,覆盖了日常使用中绝大多数的场景.嗯,至少是够用一年了,整理出来分享给大家,不明白的地方可以回复交流. 创建和使用git ssh key 首先设置git的user name和email: 1 2 3 1 2git config --global user.name "xxx" git config --global user.email "[email protected]" 查看git配置: 1 1git conf

常用的Git命令整理

最近把自己做的一些小项目传到Github上,使用Git不再仅仅是简单的add.push等,作为新手,遇到了很多问题,今天有时间进行整理和记录,并持续更新. 上传到远程仓库 git init //初始化,建立本地仓库 git add ***** //向本地库添加文件 git commit -m '*****' //添加注释,这是一个好习惯,我通常会加上时间 git remote add origin https://github.com/githubUsername/repositoryName.