zoukankan      html  css  js  c++  java
  • git

      软件下载官网:https://git-scm.com/
    
    ********************  centos 安装 git ************
      #yum install git
     
    ********************运行php文件*****************
      php [php文件名]
    *****************基本命令*********************** 
     1, $ git init     初始化一个仓库
      2,机器信息名
        $ git config --global user.name "Your Name"
        $ git config --global user.email "email@example.com"
      3,查看信息
        $ git config --list
      ******************提交文件和说明***************
      4,$ git add [文件名] 该目录下登记一个文件git信息,Git才能监视文本的修改
        $ git add .(或者 git add *) 提交多个文件
      5,将修改的文件提交上去
        $ git commit -m "wrote a readme file";//引号是提交的说明,可以随意写,用来标明提交的内修改内容
      6, $ git status     //查看文件的状态,如是否提交
      7, $ git diff       //查看本次修改的地方,如果提交,限于提交前查看
      8, 查看修改的日志
         $ git log
         q //退出日志
      9,退回上次版本
        $ git reset --hard HEAD^
      10,跳到指定的版本
        $ git reset --hard [版本号]
      11,记录命令日志
        $ git reflog
      12,查看当前修改的内容和版本库最新的区别
        git diff HEAD -- [文件名]
      13,工作区撤消修改
        $ git checkout -- [文件名]
      14,暂存区撤消修改
        $ git reset HEAD -- index.php
     15,删除版本文件,如果rm -rf 文件 只要版本库没有删除,就可以从版本库中恢复到工作区
         $ git rm ['文件名'] //删除文件
    	 工作文件误删恢复:
    	   (1),只要版本库还在, $ git reset --hard [版本号],恢复
    	   (2), $ git checkou -- [文件名] //撤消对这个文件的命令
    
    	   
    *******************远程***********************
        要远程托管代码,须要有一个服务器。第三方如:www.github.com 如果只是单纯的托管代码,推荐国内:https://gitee.com/
    	更多的代码托管平台:https://git.wiki.kernel.org/index.php/GitHosting
        1,创建SSH 
    		
    		$ ssh-keygen -t rsa -C "youremail@example.com" //邮箱名可以随意
    		(将生成 id_rsa.pub(公钥) 和 id_rsa(密钥).复制公密钥全部内容,并在Gighubu新建一个仓库。)
    	2,推送
    		https推送:
    			git remote add <shortName> [远程分支http的url] //添加远程仓库
    			git push -u origin master //本地远程推送
    			(切换到要上传代码的本地仓库下,执行。要输入Githubr的帐号密码)
    		ssh推送:
    			(这是时候公钥加入github设置的中心里)
    			或在命令行上创建一个新的存储库
    			echo“#API”>> README.md 
    			git init 
    			git add README.md 
    			git commit -m“first commit” 
    			git remote add <shortName> [远程分支http的url]
    			 git push -u origin master
    			...或从命令行推送现有存储库
    
    			git remote add <shortName> [远程分支http的url]
    			 git push -u origin master
    	
    	3,仓库更加详细信息
    	  $git remote show [仓库名]
    
            4,远程推送不成功
              网上搜索了下,是因为远程repository和我本地的repository冲突导致的,而我在创建版本库后,在github的版本库页面点击了创建README.md文件的按钮创建了说明文档,但是却没有pull到本地。这样就产生了版本冲突的问题。
              有如下几种解决方法:
    
        有如下几种解决方法:
    
        1.使用强制push的方法:
    
        $ git push -u origin master -f
    
        这样会使远程修改丢失,一般是不可取的,尤其是多人协作开发的时候。
    
        2.push前先将远程repository修改pull下来
    
        $ git pull origin master
    
        $ git push -u origin master
    
        3.若不想merge远程和本地修改,可以先创建新的分支:
    
        $ git branch [name]
    
        然后push
    
        $ git push -u origin [name]
    ************分支*********
    
      注:随着分支的切换,内容也会变换到在相应分支提交的内容
      注:关于分支布局与命名规范建议。git 开发保持2个分支:master(主干),develop(开发)。
    master用于版本号发布(1.0,2.0)。develop用于版本号的开发,在develop又有分支规范feature_[自定义名称](功能分支);预发布(release_*)分支;修补bug(fixbug_*)分支
    
    1,新建一分支并并切换到该分支
        $ git branch [分支名] [被复制的分支名,没有默认当前分支复制]
        $ git checkout [分支名] //分支切换
        ($ git checkout -b dev); 
        git branch -D[分支名] ...删除多个分支
    	(2)远程新建一个分支
    	    $ git push branch [分支名] //推送本地分支至远程
    2,查看分支列表
      $ git branch //本地分支列表
      $ git branch -a //远程和本地分支列表
    3,
    4,指定分支合并至当前分支
      $ git merge [分支名]
    5,
    6,合并分支
        $ git checkout master
        $ git merge [分支名]
        $ git merge --no-ff -m "merge with no-ff" [分支名] (加入参数合并能在log查看合并的记录)
    7,查看合并情况
        $ git log --graph --pretty=oneline --abbrev-commit 
        (2), $ git log --graph (查看分支地图)
    8,删除分支
        $ git branch -D [分支名
    	$ git push origin --delete [分支] //远程删除分支
    9,保留工作现场
         场景:如果你在一个分支工作到一半,要去其它的的分支进行工作,但在这个工作到一半的分支上,你不想提交,因为这样会留下一条“这代码修改到一半还不能用”的没用版本记录。但如果不提交,下次你切换回来你之前的工作就全没了或者覆盖了。怎么办?(这种情况不存在的,系统会让你2选1,要么提交要么保存现场工作才可以去别的分支,哪怕是 $ git checkout -b [分支名] 在这分支再分支,成功的跳过系统的2选1,回来发现系统已经帮你选择保留的选项了。哈哈。还是可以继续之前的工作。)
        还是介绍下保留工作现场吧!
        $ git stash //保存(完后,status是干净的)
        $ git stash list //查看保留的状态
        $ git stash pop stash@{状态的编号} //恢复工作状态并删除保存工作的状态
        $ git stash drop stash@{状态编号}  //删除状态
        $ git stash clear //清除所的的工作状态
        $ git stash apply stash@{状态编号} //恢复工作状态
     10,远程更新
        注:操作是将远程的分支与本地合并实现更新
    		$ git fetch origin master:tmp //将远程仓库master分支拉取到本地的tmp分支。与push相对
    		$ git diff tmp //比较当前的分支与tmp分支的区别
    		$ git merge tmp //合并tmp (这样分3步走比pull更保险些)
    	(2),更新并合并
    	   $ git pull [线上仓库地址,相当于克隆并合并]
      11,查看远程仓库数量
         $ git remote  
    	 $ git remote -v //查看仓库url
    	 
      12,删除远程仓库
         $ git remote rm [仓库]   或 git remote remove repostory
        
      13,修改远程仓库
        $ git remote rename [原名] [修改名]	 
    ***********标签********************
    
     注:程序完成写是版本号,便于查找识别使用
     1,轻量标签
       $ git tag vx.x.x
     2,附注标签
    	注:附注标签能携带更多的信息,是个对象,相对于轻量标签可以看作是多了个文本说明。编缉说明程序的作者,邮箱等。
    	$ git tag -a vx.x.x -m "标题" [分支,不写默认当前分支]
     3,标签列表
        $ git tag
     4,运行指定的版本
       $ git tag -l 'vx.x.x'
     5,推送远程标签
       $ git push --tags //所有的标签
       $ git push origin [tagName] //指定标签
     6,删除标签
       $ git tag -d [tagName] // 删除标签
       git push origin --delete tag [tagName] //远程删除标签
     7,详情
        $ git show <tagname> 
    		
    ***********Git服务器******************
      注:相对于第三方代码托管,自己布署的服务器在不交费的情况下不开源。
      (其实我也不会,涉及git钩子shell脚本以及ssh服务以及守护进程。
      如果学了这么多只是单纯的想不让你的代码开源,我不做。大公司为什么不开源,还不是因为他们的代码太垃圾了,开源就没有人用他们的产品。)  
    ***************帮助文档*****
       1,本地文档
         $ git --help //输入see also 后面的命令打开相对的帮助文档。文档是html格式.如果默认编缉器打开就取文档的路径以浏览器打开
       2,官方帮助文档 https://git-scm.com/book/en/v2  
    
    
    ******************************忽略已经提交过的文件***********************************
    这里说点题外话,有的时候我们需要忽略掉以前提交过的文件,因为git已经索引了该文件所以我们先要删除掉该文件的缓存,如文件User.php已经提交过了,现在我们想忽略,这是我们先在.gitignore中设置该文件为忽略,然后我们执行如下命令删除缓存
    
    git rm --cached User.php
    1
    然后我们在commit和push就好了
    
  • 相关阅读:
    2018-2019-1 20189221 《从问题到程序》第 6 周学习总结
    2018-2019-1 20189221 《Linux内核原理与分析》第七周作业
    《文献管理与信息分析》第 2 周学习总结
    2018-2019-1 20189221 《从问题到程序》第 5 周学习总结
    2018-2019-1 20189221 《Linux内核原理与分析》第六周作业
    2018-2019-1 20189206 《深入理解计算机系统》第一章学习笔记
    2018-2019-1 20189206 《从问题到程序》速读
    2018-2019-1 20189206 《深入理解计算机系统》速读
    2018-2019-1 20189206 《构建之法》速读
    2018-2019-1 20189206 《Linux内核原理与分析》第二周作业
  • 原文地址:https://www.cnblogs.com/bubaya/p/7561064.html
Copyright © 2011-2022 走看看