城市直播房产教育博客汽车
投稿投诉
汽车报价
买车新车
博客专栏
专题精品
教育留学
高考读书
房产家居
彩票视频
直播黑猫
投资微博
城市上海
政务旅游

简单学习git,让你在工作中得心应手

4月16日 莫思归投稿
  首先是git的简单下载
  官网下载:https:gitscm。comdownload1。安装完git后操作1。全局配置gitconfigglobaluser。name用户名gitconfigglobaluser。email邮箱地址建议用户名和邮箱地址写GitHub账号2。建立仓库
  当我们需要让Git去管理某个新项目已存在项目的时候,就需要创建仓库了。
  可以在现有文件目录下创建仓库,也可以新建mkdir文件名创建目录作为git仓库cd文件名进入该目录gitinitgit仓库进行初始化,让git知道要管理这个目录
  执行以上命令成功后,该目录下就会出现一个名为。git的隐藏文件夹(不要随意)2。git常用指令操作
  git提交文件或代码,首先要提交到缓冲区,再提交到仓库
  gitstatus:查看当前状态
  gitadd文件名:提交文件到缓冲区gitadd文件名提交一个文件gitadd文件1文件2。。。。提交多个文件gitadd。或者。提交该目录下的所有文件(。代表当前目录,可以省略)
  gitcommitm注释内容将缓冲区的文件提交到版本库(注释内容很重要,代表当前你提交的东西和之前有什么不一样,回退版本时可以用到)3。版本回退
  查看需要回退的版本需要通过查看日志3。1查看日志指令:
  gitlog〔option〕gitlog(日志信息很完整)gitlogall(显示所有分支)gitlogabbrevcommit(使得输出的commitId更短)gitlogstat(在gitlog的基础上输出文件增删改查的统计数据)gitlogprettyoneline(推荐使用,将提交信息显示为一行,日志信息只有提交编号和注释内容)gitlogoneline(和gitlogprettyoneline差不多,但是编号只有前7位)gitloggraph(以图的形式显现)gitreflog(用于恢复本地的错误操作,常用于3。3的场景)
  注:(HEADmaster)表示该版本为当前版本b8b9c908c3d7ef9d9dec490d224c8aed0db503cf为提交编号(commitid)gitlog和gitlogprettyoneline可以显示所有提交过的版本信息,不包括已经被删除的commit记录和reset的操作gitreflog用于显示所有的操作记录,包括提交,回退的操作。一般用来找出操作记录中的版本号,进行回退。3。2为日志指令做别名首先在c盘的c:用户86147中打开gitBash在该目录下创建。bashrc(指令touch。bashrc)在。bashrc文件中写入别名化gitlog等选项,也就是说当我们在输入gitlog时执行的指令就是gitlogprettyonelineallgraphabbrevcommit指令gitloggitlogprettyonelineallgraphabbrevcommit然后再gitBash中输出指令source。bashrc3。3版本回退指令(回到过去):gitresethard提交编号(提交编号不用写全,git会自动识别,但是至少要写前4位)
  注:当执行gitresethard提交编号后,版本会回退到该提交编号时的版本状态(即在该版本之后提交的文件或代码都会消失,而且提交记录也会消失)3。4回退到回退之前(回到未来)
  当版本回退后,想要回到版本回退之前,那么想再次通过gitlogprettyoneline是不行的(版本回退之前的版本在该日志中已经消失了)
  那么这时候就需要用到指令gitreflog
  gitreflog显示的日志中包含所有操作记录,提交,回退等操作(最前面就是简写的commitid)4。github等线上仓库的使用4。0与远程库进行对接gitremoteadd远端名称(一般为origin)远程仓库的地址(分为http和ssh)对接远程仓库gitremote查看所有远程仓库4。1基于http协议首先新建一个目录,然后git控制台进入该目录在GitHub中创建一个仓库并复制该仓库地址https:github。comjxnyzhnbjxnyzhnb。git在git控制台输入命令克隆该仓库到本地gitclone仓库地址然后该目录下会生成一个该以仓库为名的目录,该目录就是克隆的仓库4。2push指令gitpush指令是将本地仓库的文件提交到线上仓库gitpushf:强制覆盖,当本地代码和远程的代码修改了同一个东西,那么就会push失败,而f会强制覆盖远程仓库的代码。gitpushsetupstreamorigin本地仓库名:远程仓库名(用于指定本地仓库和指定远程仓库建立连接,第一次之后就不需要写setupstream)
  首先前面提到,提交到本地仓库的步骤是:
  gitadd文件缓冲区gitcommitm注释本地仓库
  现在提交到线上仓库需要在加一步:
  gitpush将本地仓库文件提交到线上仓库
  gitpush远程仓库名本地分支名(将本地仓库的内容推送到远程仓库中)4。3pull指令
  gitpull〔remotename〕〔branchname〕
  gitpull指令是拉取线上仓库的文件到本地仓库拉取指令就是将远程仓库的修改拉取到本地并合并,等同于fetchmerge如果不指定远端名称和分支名,那么默认拉取并合并所有分支
  总结:每天上班第一件事就是用gitpull拉去线上仓库的文件,每天下班最后一件事就是gitpush提交本地仓库的文件(其他时间可以不提交)4。4fetch指令
  远程分支和本地分支一样都可以合并,只是先需要把远程仓库的更新都下载到本地,在进行操作
  fetch指令:gitfetch〔远端名称〕〔分支名〕抓取指令就是将远端的更新都抓到本地,但是不进行合并gitfetch〔远端名称〕〔分支名〕gitmerge远端分支名(如果和本地分支名相同需要加上origin,比如originjxnyzhnb)将远程分支和本地分支进行合并如果不指定远端名称和分支名,那么默认抓取所有分支4。4(推荐)基于ssh协议
  首先在Github使用ssh协议需要先生成公私钥对指令(这个需要安装openSSH来生成),GitHub需要公钥
  安装完后,在git控制台中执行sshkeygentrsaCGitHub的注册邮箱
  步骤:生成客户端公私钥文件将公钥上传到GitHub
  实际操作:安装完openSSH后,执行sshkeygentrsaCGitHub的注册邮箱然后一直回车可以看到公钥放在cUsers86147。sshidrsa。私钥放在cUsers86147。sshidrsa
  然后找到公钥文件复制文件中的所有内容,在GitHub中创建公钥并粘贴该公钥就行了
  然后后续的步骤和http协议一致,只是是gitclonessh地址(gitgithub。com:jxnyzhnbjxnyzhnb。git)4。5总结
  总结:推荐使用ssh协议进行和线上仓库的连接,一位http协议连接的话,可能要在每一个git项目中配置账号密码,因为可能出现403错误(需要鉴权)。
  需要修改。git目录下的config文件中的
  urlhttps:github。comjxnyzhnbjxnyzhnb。giturlhttps:用户名:密码github。comjxnyzhnbjxnyzhnb。git5。分支操作
  在之前回退版本和回到未来时,我们可以看到所有的提交和回退记录都会有记录,Git会把他们传承时间线,形成类似于时间轴,该时间轴就是一个分支,也叫做master分支。
  为了满足团队协作开发,我们需要使用分支来完成一些开发任务。5。0分支的种类master:线上分支,主分支。项目在线上运行的分支develop:开发分支,是由master创建的分支,作为主要的开发分支,开发完成后,将develop分支合并到master分支中(合并之后不会删除)featureXXX:有develop分支创建的分支,一般是同期并行开发,不同期上线时创建的分支,最后合并到develop分支中(合并之后直接删除)hotfix:是由master创建的分支,用于修复线上的bug,修复完bug后需要将该分支合并到master和develop分支中
  由下图可以看出,当创建该项目是将该项目分为多个分支,当项目完成后需要将各个分支进行合并,将各个分支合并到主分支(master分支)中。
  5。1分支相关的指令查看分支:gitbranchgitbranchvv:查看所有分支和远程分支的对应关系创建分支:gitbranch分支名切换分支:gitcheckout分支名创建并切换分支:gitcheckoutb分支名(属于gitcheckout和gitbranch分支名的结合体)删除分支:gitbranchd分支名强制删除分支:gitbranchD分支名合并分支:gitmerge要将被合并的分支名(将该分支和当前的分支进行合并)5。2各分支之间互不影响
  比如以下操作:
  当前分支是master分支:
  这是在该分支下的readme。txt的内容:
  现在切换到jxnyzhnb分支:
  修改readme。txt文件内容:
  保存后,在该分支中将该文件提交到本地仓库(一定要谨记,不要忘了该操作,不然没用)
  再次切换到master分支:gitcheckoutmaster
  查看readme。txt:
  (谨记)注:这说明各个分支修改文件后提交到本地仓库,那么只会改变这个分支中的文件,对其他分支不影响
  但是,要谨记,在该分支中修改了一个文件,一定要提交到本地仓库,不然在其他分支中的该文件也会被修改。5。3各分支的合并
  前面讲了,master分支的readme。txt(该分支的readme。txt并没有提交到仓库)和jxnyzhnb分支的readme。txt(已提交到仓库)不一样。
  现在将两个分支合并
  那么这时候如果将在master分支下将jxnyzhnb分支合并,那么master分支将会添加master没有的内容但是jxnyzhnb有的内容
  比如两个不是主分支的分支也可以合并,但是当两个分支之间有相同的文件但是不同的内容,那么合并会出冲突。
  这时候可以这样解决:解决冲突使用gitresetmerge取消合并,即回退到合并前5。4删除分支
  gitbranchd分支
  注:当要删除一个分支时,一定要退出要删除的分支,不然会删除失败6。解决冲突6。1合并冲突
  当我们同时修改了同一文件的同一行(就是当一个人先修改了一个文件的一行并push到远程仓库,但是你也在自己本地修改了这个文件的那一行,那么当你想push到远程仓库时,会发生报错,因为发生冲突,这时候需要线pull文件,然后会出现merge错误,就是因为文件内容冲突,就会出现下面的代码样式,这时候你需要在本地解决冲突(先把git生成的东西去掉,在修改称自己想要的代码就行了)),然后再次push到远程仓库就行
  当线上仓库的内容被更改时,我们并没有在本地仓库中用gitpull拉取下来,那么当我们将本地仓库中的内容进行push到线上仓库时,就会发生冲突,那么push就会失败,这时候就会有提示要gitpull,但是当执行该指令后,会发现线上仓库的被更改的内容会和本地仓库的内容发生冲突,比如一个readme。txt在本地仓库中是gg,gbf,但是在线上仓库就是abczh,fss,那么pull下来就会变成以下内容。HEADgit生成的HEAD指向的是当前分支gggbfgit生成的abczhfssec83f5d538076d3e19f4ef6b336eedfdd51105a0git生成的
  这时候可以更修改该代码的人进行商量,是否删除哪一个部分或者都不删除,就只删除HEAD和jxnyzhnb(这两个是git自带的),那么再次将该文件进行push就行了当我们在本地创建了一个分支,但是却没有在线上仓库上创建该分支,如果在git命令行中在给分支中执行gitpush,就会因为本地的分支没有和远程分支建立联系而报错,就需要执行以下代码就可以正常push了gitpushsetupstreamorigin分支名(当前分支在远程分支对应的名称)
  当当前分支在远程分支中并没有该分支,那么远程分支就会创建该分支。7。忽略文件
  当我们再提交整个分支时,我们不想提交一些目录(比如css,js等),那么我们可以在该仓库目录下新建一个以。gitignore为后缀的文件(用命令行touch。gitignore创建),在里面可以定义规则(git默认不会提交空文件夹)
  常见的规则:js忽略整个文件夹(这是。gitignore文件中的注释)。zip忽略所有以。zip为后缀得文件csssa。css忽略具体的文件!index。js不过来index。js文件
  自定义的。gitignore提交时忽略js,css目录(这是。gitignore文件中的注释)jscss8。Idea集成git首先到setting中的git中选择git的安装目录(一般idea会自动检测,不用自己添加)把项目变成一个git仓库,点击idea头上的选项中的vsc或git,点击createnewrepository创建新仓库然后点击提交并推送,选择要推送的文件和远程仓库的地址在idea中左下角有git按钮,点击可以查看git的日志和提交的文件,在点击提交时间轴可以看到提交的文件的内容的变化如果要克隆,复制好远程仓库的ssh地址,在idea中选择clone就行了当出现冲突时,如果不去解决冲突会文件会爆红(即使去掉了git生成的代码也会爆红),这时候需要将该文件先gitadd到缓冲区。创建分支最快的方式是在git的log中对时间轴上的每个节点去创建新分支,那么该新分支的内容就是就是在该节点的分支的内容在idea右下角有一个按钮表示当前分支,点击该按钮可以进行切换分支,创建新分支,合并等操作。
  注:在idea中切换分支之前切记要把原来分支新增加的代码先提交到本地仓库,不然切换分支后原分支新增的代码就会消失
  可以把idea的终端变成gitbash(原来是cmd),在设置中的tool(工具)找到终端(Terminal),设置shell的路径为git中的bash。exe的路径(比如D:Gitbinbash。exe)
投诉 评论 转载

低调地陨落2013年还未过去,但这一年的市场阴影,却已深深扎根在了HTC(宏达电)管理层的心中。今年10月,HTC董事长王雪红公开对外表示,未来两个月,将是HTC历史上面临的最大的挑战。……去香港旅游要带哪些证件近年来,越来越多的大陆人会选择去香港旅游,香港是亚洲的购物中心,香港还有很多可以游玩的名胜古迹,那么去香港旅游要带哪些证件?香港旅游要带的证件如下;1、需要带港澳通……我用老干妈骗了企鹅十亿小说在哪看我用老干妈骗了企鹅十亿小说这热点蹭的也太快了吧?随着腾讯被假老干妈骗了这么久,免费打广告事件出来后,就有我用老干妈骗了企鹅十亿飞卢网小说出来,简介都有,其实就是恶搞的,没有在线……交警执法一个交警在马路执法,碰巧遇到了车祸,交警走了过去,看了看事故现场,又看了看女司机。这时候另一个驾驶员也出来了,是交警的同学,对交警说道:另一个是你的妻子,你肯定偏向她了啊……生日感悟唯美句子不记得我生日的闺蜜配当我闺蜜么一、今天,用意想不到的甜蜜和幸福的礼物开始,像花儿绽开一样,奥妙难测。在你自己的喜庆日子里,我深情地思念你。愿生活中最美好的友谊爱情和幸福都属于你永远属于你。二、对于过去……一次难忘的演出小时候我一直弹钢琴,弹得还不错,有一次,我参加了琴行组织的一场音乐会。我早早地到了那里,许多家长都带着自家的孩子来参加了音乐会。不一会,音乐会开始了,台子上放着一架大钢琴……六点恋爱劝告让女人不再迷失自我爱情太美,也太容易给人带来伤害。在你被他迷得晕晕乎乎的时候,要提醒自己,在爱情的博弈中别迷失自我,把本钱输掉。Psy525。cn一、别投入得太快当你与他初次相识之后……此话造句用此话造句大全1。人生最大的敌人是自己。此话最为重要。人的一生总会遇到一些敌人,如流氓,无赖,小人,此等衣冠禽兽。2。有人说我们来到这个世上就是要帮助别人的,倘若此话非虚,那么请问,别……好的主图你该考虑这个重点我们知道在淘宝上卖东西,买家大多数能够看到你宝贝的途径是要对比很多卖家的宝贝,那么主图的第一印象就成为点击率是否高的非常重要的因素(影响点击率的不仅仅是主图)。我本人并不懂美工……来看下世界强公司的面试题及出题思路读书名:谁是谷歌想要的人才?副标题:破解世界最顶尖公司的面试密码作者:〔美〕威廉?庞德斯通译者:闾佳出版社:浙江人民出版社出版品牌:湛庐文化出……中国十大恶心人物排行榜中国最恶心的男人是谁在人们的生活中,难免会遇到各种各样道貌岸然的人,他们虽然有很高的社会地位,或者是有非常高的头衔,但是知人知面不知心,有的人的行为举止可以说是非常的差劲了,人长的丑不可怕,可怕的……简单学习git,让你在工作中得心应手首先是git的简单下载官网下载:https:gitscm。comdownload1。安装完git后操作1。全局配置gitconfigglobaluser。name用户名g……
核酸检测机构负责人涉病毒传播被立案,背后公司单季大赚6亿元你知道斯香妮安全套的质量如何呢战地小丑Clownfield2042主打飞天气垫船很多Bug古风伤感句子关于爱上一个的说说简短句子换掉造句用换掉造句大全为何生命线断开是手相中的大忌永远铭记国防建设中的先烈们行数造句用行数造句大全爱人走了472天,我对生活中的一切渐渐失去了兴趣白宫造句用白宫造句大全听听过来人的人生经验

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找