(预警:由于具体,所以行文有些长,新手边看边操纵结果出乎你的预感) Workspace:工作区 二:SVN与Git的最首要的区分? SVN是集合式版本控制系统,版本库是集合放在中心办事器的,而干活的时辰,用的都是自己的电脑,所以首先要从中心办事器那里获得最新的版本,然后干活,干完后,需要把自己做完的活推送到中心办事器。集合式版本控制系统是必须联网才能工作,假如在局域网还可以,带宽够大,速度够快,假如在互联网下,假如网速慢的话,就疑惑了。 Git是散布式版本控制系统,那末它就没有中心办事器的,每小我的电脑就是一个完整的版本库,这样,工作的时辰就不需要联网了,由于版本都是在自己的电脑上。既然每小我的电脑都有一个完整的版本库,那多小我若何合作呢?比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的点窜推送给对方,便可以相互看到对方的点窜了。 三、在windows上若何安装Git? msysgit是 windows版的Git,以下: 需要从网高低载一个,然落后行默许安装即可。安装完成后,在起头菜单里面找到 "Git --> Git Bash",以下: 会弹出一个类似的号令窗口的工具,就说明Git安装成功。以下: 安装完成后,还需要最初一步设备,在号令行输入以下: 由于Git是散布式版本控制系统,所以需要填写用户名和邮箱作为一个标识。 留意:git config --global 参数,有了这个参数,暗示你这台机械上一切的Git仓库城市利用这个设置,固然你也可以对某个仓库指定的分歧的用户名和邮箱。 四:若何操纵? 一:建立版本库。 什么是版本库?版本库别名仓库,英文名repository,你可以简单的了解一个目录,这个目录里面的一切文件都可以被Git治理起来,每个文件的点窜,删除,Git都能跟踪,以便任何时辰都可以追踪历史,大概在未来某个时辰还可以将文件”复原”。 所以建立一个版本库也很是简单,以下我是D盘 –> www下 目录下新建一个testgit版本库。 pwd 号令是用于显现当前的目录。
这时辰你当前testgit目录下会多了一个.git的目录,这个目录是Git来跟踪治理版本的,没事万万不要手骚乱改这个目录里面的文件,否则,会把git仓库给破坏了。以下:
首先要明白下,一切的版本控制系统,只能跟踪文本文件的修改,比如txt文件,网页,一切法式的代码等,Git也不列外,版本控制系统可以告诉你每次的修改,可是图片,视频这些二进制文件,虽能也能由版本控制系统治理,但没法跟踪文件的变化,只能把二进制文件每次修改串起来,也就是晓得图片从1kb酿成2kb,可是到底改了啥,版本控制也不晓得。 下面先看下demo以下演示: 我在版本库testgit目录下新建一个记事本文件 readme.txt 内容以下:11111111 第一步:利用号令 git add readme.txt增加到暂存区里面去。以下: 假如和上面一样,没有任何提醒,说明已经增加成功了。 第二步:用号令 git commit告诉Git,把文件提交到仓库。 现在我们已经提交了一个readme.txt文件了,我们下面可以经过号令git status来检察能否还有文件未提交,以下: 说明没有任何文件未提交,可是我现在继续来改下readme.txt内容,比如我鄙人面增加一行2222222222内容,继续利用git status来检察下成果,以下: 上面的号令告诉我们 readme.txt文件已被点窜,可是未被提交的点窜。 接下来我想看下readme.txt文件到底改了什么内容,若何检察呢?可以利用以下号令: git diff readme.txt 以下: 如上可以看到,readme.txt文件内容从一行11111111改成 二行 增加了一行22222222内容。 晓得了对readme.txt文件做了什么点窜后,我们可以安心的提交到仓库了,提交点窜和提交文件是一样的2步(第一步是git add 第二步是:git commit)。 以下: 二:版本回退: 内容为33333333333333.继续履行号令以下: 现在我已经对readme.txt文件做了三次点窜了,那末我现在想检察下历史记录,若何查呢?我们现在可以利用号令 git log 演示以下所示: git log号令显现从比来到最远的显现日志,我们可以看到比来三次提交,比来的一次是,增加内容为333333.上一次是增加内容222222,第一次默许是 111111.假如嫌上面显现的信息太多的话,我们可以利用号令 git log –pretty=oneline 演示以下: 现在我想利用版本回退操纵,我想把当前的版本回退到上一个版本,要利用什么号令呢?可以利用以下2种号令,第一种是:git reset --hard HEAD^ 那末假如要回退到上上个版本只需把HEAD^ 改成 HEAD^^ 以此类推。那假如要回退到前100个版本的话,利用上面的方式必定不方便,我们可以利用下面的简洁号令操纵:git reset --hard HEAD~100 即可。未回退之前的readme.txt内容以下: 假如想回退到上一个版本的号令以下操纵: 再来检察下 readme.txt内容以下:经过号令cat readme.txt检察 可以看到,内容已经回退到上一个版本了。我们可以继续利用git log 来检察下历史记录信息,以下: 我们看到 增加333333 内容我们没有看到了,可是现在我想回退到最新的版本,如:有333333的内容要若何规复呢?我们可以经过版本号回退,利用号令方式以下: git reset --hard 版本号 ,可是现在的题目假如我已经关掉过一次号令行大概333内容的版本号我并不晓得呢?要若何晓得增加3333内容的版本号呢?可以经过以下号令即可获得到版本号:git reflog 演示以下: 经过上面的显现我们可以晓得,增加内容3333的版本号是 6fcfc89.我们现在可以号令 git reset --hard 6fcfc89来规复了。演示以下: 可以看到 今朝已经是最新的版本了。 三:了解工作区与暂存区的区分? 我们前面说过利用Git提交文件到版本库有两步: 第一步:是利用 git add 把文件增加进去,现实上就是把文件增加到暂存区。 第二步:利用git commit提交变动,现实上就是把暂存区的一切内容提交到当前分支上。 我们继续利用demo来演示下: 我们在readme.txt再增加一行内容为4444444,接着在目录下新建一个文件为test.txt 内容为test,我们先用号令 git status来检察下状态,以下: 现在我们先利用git add 号令把2个文件都增加到暂存区中,再利用git status来检察下状态,以下: 接着我们可以利用git commit一次性提交到分支上,以下: 四:Git撤消点窜和删除文件操纵。 在我未提交之前,我发现增加5555555555555内容有误,所以我得顿时规复之前的版本,现在我可以有以下几种方式可以做点窜: 第一:假如我晓得要删掉那些内容的话,间接手动变动去掉那些需要的文件,然后add增加到暂存区,最初commit掉。 第二:我可以按之前的方式间接规复到上一个版本。利用 git reset --hard HEAD^ 可是现在我不想利用上面的2种方式,我想间接想利用撤消号令该若何操纵呢?首先在做撤消之前,我们可以先用 git status 检察下当前的状态。以下所示: 可以发现,Git会告诉你,git checkout -- file 可以抛弃工作区的点窜,以下号令: 号令 git checkout --readme.txt 意义就是,把readme.txt文件在工作区做的点窜全数撤消,这里有2种情况,以下: 1.readme.txt自动点窜后,还没有放到暂存区,利用 撤消点窜就回到和版本库如出一辙的状态。 留意:号令git checkout -- readme.txt 中的 -- 很重要,假如没有 -- 的话,那末号令酿成建立分支了。 二:删除文件。 如上:一般情况下,可以间接在文件目录中把文件删了,大概利用如上rm号令:rm b.txt ,假如我想完全从版本库中删掉了此文件的话,可以再履行commit号令 提交掉,现在目录是这样的, 只要没有commit之前,假如我想在版本库中规复此文件若何操纵呢? 可以利用以下号令 git checkout -- b.txt,以下所示: 再来看看我们testgit目录,增加了3个文件了。以下所示: 五:远程仓库。 ssh-keygen -t rsa –C “youremail@example.com”, 由于我当地此前运转过一次,所以当地有,以下所示: id_rsa是私钥,不能泄露进来,id_rsa.pub是公钥,可以安心地告诉任何人。 第二步:登录github,翻开” settings”中的SSH Keys页面,然后点击“Add SSH Key”,填上肆意title,在Key文本框里黏贴id_rsa.pub文件的内容。 点击 Add Key,你就应当可以看到已经增加的key。 若何增加远程库? 首先,登录github上,然后在右上角找到“create a new repo”建立一个新的仓库。以下: 在Repository name填入testgit,其他连结默许设备,点击“Create repository”按钮,就成功地建立了一个新的Git仓库: 今朝,在GitHub上的这个testgit仓库还是空的,GitHub告诉我们,可以从这个仓库克隆出新的仓库,也可以把一个已有的当地仓库与之关联,然后,把当地仓库的内容推送到GitHub仓库。 现在,我们按照GitHub的提醒,在当地的testgit仓库下运转号令:git remote add origin https://github.com/tugenhua0707/testgit.git 一切的以下: 把当地库的内容推送到远程,利用 git push号令,现实上是把当前分支master推送到远程。 由于远程库是空的,我们第一次推送master分支时,加上了 –u参数,Git不单会把当地的master分支内容推送的远程新的master分支,还会把当地的master分支和远程的master分支关联起来,在今后的推送大概拉取时便可以简化号令。推送成功后,可以立即在github页面中看到远程库的内容已经和当地如出一辙了,上面的要输入github的用户名和密码以下所示: 从现在起,只要当地作了提交,便可以经过以下号令: git push origin master 把当地master分支的最新点窜推送到github上了,现在你就具有了实在的散布式版本库了。
上面我们领会了先有当地库,后有远程库时辰,若何关联远程库。 现在我们想,假如远程库有新的内容了,我想克隆到当地来 若何克隆呢? 首先,登录github,建立一个新的仓库,名字叫testgit2.以下: 以下,我们看到: 现在,远程库已经预备好了,下一步是利用号令git clone克隆一个当地库了。以下所示: 接着在我当地目录下 天生testgit2目录了,以下所示: 六:建立与合并分支。 首先,我们来建立dev分支,然后切换到dev分支上。以下操纵: git checkout 号令加上 –b参数暗示建立并切换,相当于以下2条号令 git branch dev git checkout dev git branch检察分支,会列出一切的分支,当前分支前面会增加一个星号。然后我们在dev分支上继续做demo,比如我们现在在readme.txt再增加一行 7777777777777 首先我们先来检察下readme.txt内容,接着增加内容77777777,以下: 现在dev分支工作已完成,现在我们切换到主分支master上,继续检察readme.txt内容以下: 现在我们可以把dev分支上的内容合并到分支master上了,可以在master分支上,利用以下号令 git merge dev 以下所示: git merge号令用于合并指定分支到当前分支上,合并后,再检察readme.txt内容,可以看到,和dev分支最新提交的是完全一样的。 留意到上面的Fast-forward信息,Git告诉我们,此次合并是“快进形式”,也就是间接把master指向dev确当条件交,所以合并速度很是快。 合并完成后,我们可以接着删除dev分支了,操纵以下: 总结建立与合并分支号令以下: 检察分支:git branch 建立分支:git branch name 切换分支:git checkout name 建立+切换分支:git checkout –b name 合并某分支到当前分支:git merge name 删除分支:git branch –d name 若何处理抵触? 一样,我们现在切换到master分支上来,也在最初一行增加内容,内容为99999999,以下所示: 现在我们需要在master分支上来合并fenzhi1,以下操纵: Git用<<<<<<<,=======,>>>>>>>标志出分歧分支的内容,其中<<<HEAD是指主分支点窜的内容,>>>>>fenzhi1 是指fenzhi1上点窜的内容,我们可以点窜下以下后保存: 假如我想检察分支合并的情况的话,需要利用号令 git log.号令行演示以下: 3.分支治理战略。 点窜readme.txt内容。 增加到暂存区。 切换回主分支(master)。 合并dev分支,利用号令 git merge –no-ff -m “正文” dev 检察历史记录 截图以下: 分支战略:首先master主分支应当是很是稳定的,也就是用来公布新版本,一般情况下不答应在上面干活,干活一般情况下在新建的dev分支上干活,干完后,比如上要公布,大概说dev分支代码稳定后可以合并到主分支master上来。 七:bug分支: 比如我在开辟中接到一个404 bug时辰,我们可以建立一个404分支来修复它,可是,当前的dev分支上的工作还没有提交。比如以下: 并不是我不想提交,而是工作停止到一半时辰,我们还没法提交,比如我这个分支bug要2天完成,可是我issue-404 bug需要5个小时内完成。怎样办呢?还好,Git还供给了一个stash功用,可以把当前工作现场 ”隐藏起来”,等今后规复现场后继续工作。以下: 所以现在我可以经过建立issue-404分支来修复bug了。 首先我们要肯定在阿谁分支上修复bug,比如我现在是在主分支master上来修复的,现在我要在master分支上建立一个姑且分支,演示以下: 修复完成后,切换到master分支上,并完成合并,最初删除issue-404分支。演示以下: 现在,我们回到dev分支上干活了。 工作区是清洁的,那末我们工作现场去那里呢?我们可以利用号令 git stash list来检察下。以下: 工作现场还在,Git把stash内容存在某个地方了,可是需要规复一下,可以利用以下2个方式: 1.git stash APPly规复,规复后,stash内容并不删除,你需要利用号令git stash drop来删除。 八:多人合作。 要检察远程库的信息 利用 git remote 一:推送分支: 推送分支就是把该分支上一切当地提交到远程库中,推送时,要指定当地分支,这样,Git就会把该分支推送到远程库对应的远程分支上: 当地的readme.txt代码以下: 现在我想把当地更新的readme.txt代码推送到远程库中,利用号令以下: 我们可以看到如上,推送成功,我们可以继续来截图github上的readme.txt内容 以下: 可以看到 推送成功了,假如我们现在要推送到其他分支,比如dev分支上,我们还是阿谁号令 git push origin dev 那末一般情况下,那些分支要推送呢? master分支是主分支,是以要时辰与远程同步。 多人合作时,大师城市往master分支上推送各自的点窜。现在我们可以模拟别的一个同事,可以在另一台电脑上(留意要把SSH key增加到github上)大概同一台电脑上别的一个目录克隆,新建一个目录名字叫testgit2 可是我首先要把dev分支也要推送到远程去,以下 接着进入testgit2目录,停止克隆远程的库到当地来,以下: 现在目录下天生有以下所示: 现在我们的小伙伴要在dev分支上做开辟,就必须把远程的origin的dev分支到当地来,因而可以利用号令建立当地dev分支:git checkout –b dev origin/dev 现在小伙伴们便可以在dev分支上做开辟了,开辟完成后把dev分支推送到远程库时。 以下: 小伙伴们已经向origin/dev分支上推送了提交,而我在我的目录文件下也对一样的文件同个地方作了点窜,也试图推送到远程库时,以下: 由上面可知:推送失利,由于我的小伙伴最新提交的和我试图推送的有抵触,处理的法子也很简单,上面已经提醒我们,先用git pull把最新的提交从origin/dev抓下来,然后在当地合并,处理抵触,再推送。 git pull也失利了,缘由是没有指定当地dev分支与远程origin/dev分支的链接,按照提醒,设备dev和origin/dev的链接:以下: 这回git pull成功,可是合并有抵触,需要手动处理,处理的方式和分支治理中的 处理抵触完全一样。处理后,提交,再push: 现在手动已经处理完了,我接在需要再提交,再push到远程库里面去。以下所示: 是以:多人合作工作形式通常为这样的: 首先,可以试图用git push origin branch-name推送自己的点窜. 感激龙恩的进献:http://www.cnblogs.com/tugenhua0707/p/4050072.html 参考阮教员整理的部分号令:http://www.ruanyifeng.com/blog/2015/12/git-cheat-sheet.html。 # 在当前目录新建一个Git代码库 # 显现当前的Git设置 # 增加指定文件到暂存区 # 提交暂存区到仓库区 # 列出一切当地分支 # 列出一切tag # 显现有变更的文件 # 下载远程仓库的一切变更 # 规复暂存区的指定文件到工作区 相关标签:Html/CSSJavaScript前端工具 作者: 蘇小小 链接:http://www.imooc.com/article/20411 来历:慕课网 |
近日深度操作系统官方宣布,国产操作系统deepin 20.6版本正式上线,新版本升级了Stabl
【键盘操作方法大全】键盘可不仅仅能帮我们打字哦,还有很多快捷的操作你都知道吗?除
关于电脑的一些基本常识和操作(电脑初学者必备) 众所周知,在21世纪的今天,电脑
知乎Markdown适配不行,希望在我的博客中查看文章作者寄语操作系统实验的学习是一个循
前言只有光头才能变强这个学期开了Linux的课程了,授课的老师也是比较负责任的一位。
大家好,我是你们的新朋友叨叨张,很高兴能够在这里和大家相遇,今天我要分享的主题是
大家好我是正经人你以为上来就要教封面上那个效果吗?当然不是,那个是我好几年前做的
操作系统的数十年沉浮1946年诞生第一台计算机时,还没有操作系统。程序员靠着「打孔」
在编程届有个共识,想要成为一个合格的程序员必须要掌握 GitHub 的用法!接下来,我们
(预警:因为详细,所以行文有些长,新手边看边操作效果出乎你的预料)一:Git是什么
前言介绍快捷键,也就是刷刷按几下键盘上的组合键就可以达到鼠标点很多下才能实现的效
我在上篇文章说过,上海医保需要社保(即养老保险)成功转入杭州后才能进行转移,申请
高中化学实验真复杂,包学习APP为你整理最全总结,不怕记不住!一、中学化学实验操作
最近收到不少读者留言,关于怎么学「操作系统」和「计算机网络」的留言,小林写这一块
文/小渔俗话说:“好记性不如烂笔头。”在无纸时代,记笔记当然也不一定要用烂笔头了
之前安利过不少值得安装或使用的软件,但这一次我想换个角度,写一些强烈不建议安装的
服务器地址:http://kms.03k.org(点击检查是否可用);服务作用:在线激活windows和off
从Windows8开始,Windows的开机速度有了极大的提高,这得益于一项新的功能:快速启动
国产流氓软件之所以流氓就流氓在 “ 买一赠N ”装一个软件,就会给你附赠N个流氓软件
推荐10个超好玩的网站,窥探别人的记忆,敲键盘听歌,办公偷懒神器,看中国古今妖怪…
声明:本站内容由网友分享或转载自互联网公开发布的内容,如有侵权请反馈到邮箱 1415941@qq.com,我们会在3个工作日内删除,加急删除请添加站长微信:15924191378
Copyright @ 2022-2024 私域运营网 https://www.yunliebian.com/siyu/ Powered by Discuz! 浙ICP备19021937号-4