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就好了
posted @ 2017-09-20 13:46  不拨牙  阅读(193)  评论(0编辑  收藏  举报