Tag Archives: git

实际工作中常用到的git命令

git这个东西是很博大精深的,对应的命令也是挺多的,具体的可以看官方手册,想要了解的可以看阮一峰的这篇博客,这边的开头介绍了git的远端仓库、本地仓库、暂存区以及工作区的概念,这一点对于理解git很重要。 这里,只介绍一下在我们日常工作中比较常用到的一些命令(对于老司机们,若是觉得以下命令有不对的,或者说是有更优的方式请指正一下,多谢) 1、下载安装git,可以直接到官网下载对应版本,官网见这里,除了下载git外。 2、还需要一个知识,就是cmd或者sh,毕竟在命令行里面,但不要怕,这里用到的命令不多,只有简单的几个,若是了解的话可以直接略过这部分。 3、正式开始介绍git命令,拿到项目后,首先要用到的命令是clone,clone的地址就是我们拿到的git地址,拿从github上clone一个项目为例。 clone的过程中,一般需要你输入账号和密码,若是确定你有这个项目的拉取权限,只要照常输入就可以了,若是没有找人问问,这里若是避免每次都输入账号和密码,可以采用ssh key的方式,具体操作可见参考这篇文章,其中生成完的ssh key配置到哪里,这个具体的git平台可能不一致,需要自己找找,一般应该也都在用户的配置里面。 4、项目clone下来了,接下来要做的操作应该是切换到你要开发操作的分支(由于默认clone下来的是master分支,严格来说master分支是不允许直接操作的),切换之前我们需要看一下远端都存在哪些分支,这里我们可以用如下命令来做。 5、查看完分支后,现在就需要切换到对应分支了,这里可以用如下命令,来完成建立对应的本地分支(最初本地没有这个分支),并且将本地分支与远端分支关联(git push提交操作的时候默认提交到对应的远端分支),同时完成对应分支的切换。 6、上一条目介绍的是你要操作的分支远端已经存在,但本地没有的情况下,接下来我们来介绍下另外两种情况,一个是远端和本地存在了,还有一种情况是本地和远端都不存在。先介绍第一种。 这里切换命令就简单多了,只需要: 7、最后这种情况是远端和本地都没有,那么就需要你重新建立一个分支(这里备注一下,你在哪个分支新建分支,那么新建这个分支的默认代码就是当前分支的代码,所以实际操作中新建分支一般需要在master下面,并且在新建前执行拉取远端最新代码的操作–git pull),并将其推送的远端,所有操作都在这里: 是不是也不复杂,这里加一个提示,其实,以上的第一二条命令可以合并。命令如下: 其实除了上述三种情况,还有一种是本地存在但远端没有,这里的操作还是可以直接用git checkout切换分支,与本地和远端均存在完全一致,毕竟这个命令操作实际产生效果的在本地环境。 8、操作分支搞定了,这里我们就应该按照业务需求来修改代码了,修改完成代码之后,我们就要面临着提交代码,在提交代码之前,我们最好先查询一下代码的修改状态,也就是哪些文件被修改了,这里我们可以执行git status命令。 备注下,若是除了红色列表,还给你列出了绿色列表~~不用怕,绿色是你已经添加到暂存区,但未提交的代码,就是执行了git add 操作,但未执行git commit操作~~那git add和git commit 又是啥? 9、git add紧接着上面的操作,你利用git status确定要修改的文件没有问题,需要将它们提交到git上面,这里首先要用到的就是git add .,add完成后,需要用到的就是git commit,具体如下: 将代码加到暂存区后,我们可以用git commit将代码提到本地仓库。 备注:对于修改部分的内容(若是你要提交的修改包含了新建文件的部分,还是乖乖先add再commit吧),add和commit也可以进行合并成 10、介绍完了提交,我们在开发的时候还会遇到一种情况,就是由于某些原因,我这波修改不要了,想要回退到未修改时的样子,这里的回退也分为几种情况,这里主要介绍未到本地仓库阶段的代码,存在于工作区和暂存区的。具体如下: 单个文件回退,且这个文件并非此次新增(此文件在本地仓库已经有记录了,是本地仓库,暂存区不算啊) 单个文件回退,且这个文件为此次新增,这个就简单了啊,直接到文件里面删除就可以了,根本不用git命令,命令行为 说了单个文件,再说多了文件,主要指的是不区分文件对整个暂存区和工作区做处理的。 先说已经到了暂存区的,这里只需要一条命令: 接下来是在工作区的,这里分为两部分,一个是新增文件,一个是在现有文件修改,不论怎样,两条命令合在一起就搞定了 11、讲完了提交到本地仓库,接下来要讲一下如何提交到远端仓库,这里我们要用到git push 命令,一般来讲,若是按照我们上面介绍的部分,也就是你将本地分支与远端的某个分支做了关联,你只需要执行: 若是git push未成功,看一下提示,常见的情况有两种,一个是你的本地没有指定对应的远端,这个时候按照提示关联一下,一般来说会是这个命令 另外一种就是代码冲突了,没啥好办法,先利用git status查看冲突的具体文件(其实提交的报错日志也有),看看谁的代码和自己冲突了,很明显的问题自己解决了,拿不准的一定要找对方沟通,待完全完全解决完冲突的部分后再利用git add和git commit提交解决冲突的部分,随后再git push提交。 12、说完了提交到远端仓库,还有一个很重要的命令是git pull,这个命令是拉取远端仓库的代码,这个命令记得要经常用,每次你准备修改代码的前都要执行一下git pull。顺便再说一下,对比git pull,上一条的git push应该在每次或者说每一个功能完成后来一次。 13、至此,提交和提交前的回退都完事了,最后在说一下上面提到过git diff命令,除了将暂存区和工作区的代码做对比,还可以对比两个版本的代码,还可以对比两个分支的代码,还可以对比两个版本单独的代码,总之很强大,我们现在就简单介绍一下吧。 首先,对比两个版本的代码,这里先介绍一下git log这个命令,这个可以列出来提交信息列表,列表中详细列出了每一次提交的commit hash值,时间以及注释信息,拿到两个不同的commit hash值,然后执行 以上命令会列出两个版本修改的详细信息,但若是更改的内容过多的话,会觉得很多很混乱,这个时候我们可以只列出不同文件的列表。信息如下。 按照以上命令列完了不同文件的修改后,若是打算看单独某个文件的修改,执行如下命令便可: 上面介绍完了两次提交版本的对比,接下来说一下两个分支的对比,其实分支和版本一样,只是将对应的commit hash换成分支名称即可,例如对比master分支和dev分支命令如下: 13、然后,我们再说一下分支合并,比如我们要将dev分支合并到master分支,首先你需要在你要合并的两个分支下都执行一下git pull命令,保证你本地的两个分支代码都是最新的,这里若是发现有人提交了一些代码,但你不了解提交的内容应该先去沟通,沟通完成后我们利用git checkout命令切换到master分支,然后执行如下命令: 备注:合并代码过程中可能会发生冲突,遇到冲突后解决办法与git pull命令遇到冲突后一致。 14、说了那么多分支的操作,“增”和“改”都包含了,最后还有一个删的操作,删的操作包含本地删除和远端删除。不论是本地删除还是远端删除,都不要在即将被删除的分支下操作,比如我们要删除dev分支,那么我们就需要利用git checkout到其他分支,比如master,然后执行如下命令: 至此,完成了本地和远端分支的删除,但这里存在一个问题,若是其他人删除了远端分支,我们默认是获取不到远端分支本删除的状态的,为了让我们获取到我们需要执行一个如下命令: 15、最后,说一下我们上线的时候有些版本会比较大,这类的版本我们可以打一个tag标记,目的是方便查找,然后我们这里就介绍一下打tag的命令,命令如下: 总结:至此对应的介绍就到这里了,上面介绍的命令很多都有挺多参数的,例如git log,其在指定文件名后可以只看某个文件的提交记录~~~总之,这里我们只介绍了常用的部分,更加深入的部分请自行了解吧!

Git 中.gitignore 使用和.gitignore 无效的解决方法

原文地址:https://www.jianshu.com/p/e5360fa04152 造成这个问题的原因是:.gitignore只能忽略那些原来没有被 track 的文件,如果某些文件已经被纳入了版本管理中,则修改 .gitignore 是无效的。 解决方法是先把本地缓存删除,然后再提交。 解决问题的具体命令。 如果缓存中有重要的数据更改,那么你需要单独删除不要的缓存:

搭建私人的git仓库

试用场景:小团队或者个人,私密的内容,不适合放到github上面; 此处默认为centos操作系统! 第一步:安装git $ sudo yum install git 第二步,创建一个git用户,用来运行git服务: $ sudo adduser git 第三步,创建证书登录: 收集所有需要登录的用户的公钥,就是他们自己的id_rsa.pub文件,把所有公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个。 对于需要登录的用户采用ssh-keygen -t rsa -C “youremail@example.com”命令创建(windows需要打开git bash),创建的时候会提示你密钥生成的位置,以及让你生成对应的密码——一般来说,公钥会生成在.ssh路径下; 第四步,初始化仓库: 先选定一个目录作为Git仓库,假定是/srv/sample.git,在/srv目录下输入命令: $ sudo git init –bare sample.git 执行完上面的命令,Git就会创建一个裸仓库,裸仓库没有工作区,因为服务器上的Git仓库纯粹是为了共享,所以不让用户直接登录到服务器上去改工作区,并且服务器上的Git仓库通常都以.git结尾。然后,把owner改为git: $ sudo chown -R git:git sample.git 至此,一个私有的git仓库就创建好了,可以采用如下命令拉取内容了: git clone git@server:/srv/sample.git 但若是我并不是创建新项目,而是想要把老项目放到git上面,~~~那么首先,你上面初始化仓库应该在你原有项目目录初始化,然后添加项目文件: $ git add . 随后,将添加的文件提交到仓库(需要按照要求配置账户,同时也需要把帐号的公钥和上面一样放在/home/git/.ssh/authorized_keys): $ git commit -m “Initial commit” 再然后将本地仓库关联到远端仓库: git remote add origin git@server:/srv/sample.git 然后可以查看一下关联结果: $ git remote -v 发现成功了,就可以把代码提交到仓库了: $ git push origin master

近期小记20151126

1、如何判断一个数字是否为0; 由于0的形式可以是0,也可以使0.00,也可以是0.0,所以直接用字符串判断不可行,于是想到将其转换成整数和0对比,结果发现0.02也被转成了0,显然不符合预期了……除了parseInt,还有一个parseFloat方法,用parseFloat后的和0对比下就可以了,代码如下: 若是对上面代码不放心,还有一种处理思路,就是用原值减去parseInt后值,判断是否等于0; 2、如何clone下来github的代码,首先配置下ssh的key,可参考文章:http://riny.net/2014/git-ssh-key/ 备注:指鹤按照文章中的配置验证是否配置成功时,并未提示成功,但已经可以用了; 配置完成后,就可以直接clone代码到本地了,可参考文章:https://gist.github.com/suziewong/4378619 简介: 1、fork你想要看的项目,fork之后,你的个人仓库就多了这个库; 2、从github上下载代码到本地,你需要执行如下命令: 3、git clone https://github.com/suziewong/osteach.github.com.git 后面的地址,就是项目右侧的SSH clone URL内的地址;

github设置添加SSH

转自:CSDN的一篇博客,原博客点击这里 很多朋友在用github管理项目的时候,都是直接使用https url克隆到本地,当然也有有些人使用 SSH url 克隆到本地。然而,为什么绝大多数人会使用https url克隆呢? 这是因为,使用https url克隆对初学者来说会比较方便,复制https url 然后到 git Bash 里面直接用clone命令克隆到本地就好了。而使用 SSH url 克隆却需要在克隆之前先配置和添加好 SSH key 。因此,如果你想要使用 SSH url 克隆的话,你必须是这个项目的拥有者。否则你是无法添加 SSH key 的。 https 和 SSH 的区别: 1、前者可以随意克隆github上的项目,而不管是谁的;而后者则是你必须是你要克隆的项目的拥有者或管理员,且需要先添加 SSH key ,否则无法克隆。 2、https url 在push的时候是需要验证用户名和密码的;而 SSH 在push的时候,是不需要输入用户名的,如果配置SSH key的时候设置了密码,则需要输入密码的,否则直接是不需要输入密码的。 在 github 上添加 SSH key 的步骤: 1、首先需要检查你电脑是否已经有 SSH key 运行 git Bash 客户端,输入如下代码: $ cd ~/.ssh $ ls 这两个命令就是检查是否已经存在 id_rsa.pub 或 id_dsa.pub 文件,如果文件已经存在,那么你可以跳过步骤2,直接进入步骤3。 2、创建一个 SSH key $ ssh-keygen -t rsa -C “your_email@example.com” 代码参数含义: -t 指定密钥类型,默认是 rsa ,可以省略。 -C 设置注释文字,比如邮箱。 -f 指定密钥文件存储文件名。 以上代码省略了 -f 参数,因此,运行上面那条命令后会让你输入一个文件名,用于保存刚才生成的 SSH key 代码,如: Generating public/private rsa key pair. # Enter file in which to save the key (/c/Users/you/.ssh/id_rsa): [Press enter] 当然,你也可以不输入文件名,使用默认文件名(推荐),那么就会生成 id_rsa 和 id_rsa.pub 两个秘钥文件。 接着又会提示你输入两次密码(该密码是你push文件的时候要输入的密码,而不是github管理者的密码), 当然,你也可以不输入密码,直接按回车。那么push的时候就不需要输入密码,直接提交到github上了,如: Enter passphrase (empty for no passphrase): # Enter same passphrase again: 接下来,就会显示如下代码提示,如: Your identification has been saved in /c/Users/you/.ssh/id_rsa. # Your public key has been saved in /c/Users/you/.ssh/id_rsa.pub. # The key fingerprint is: # 01:0f:f4:3b:ca:85:d6:17:a1:7d:f0:68:9d:f0:a2:db your_email@example.com 当你看到上面这段代码的收,那就说明,你的 SSH key 已经创建成功,你只需要添加到github的SSH key上就可以了。 3、添加你的 SSH key 到 github上面去 a、首先你需要拷贝 id_rsa.pub 文件的内容,你可以用编辑器打开文件复制,也可以用git命令复制该文件的内容,如: $ clip < ~/.ssh/id_rsa.pub b、登录你的github账号,从又上角的设置( Account Settings )进入,然后点击菜单栏的 SSH key 进入页面添加 SSH […]