zoukankan      html  css  js  c++  java
  • Git版本管理工具的使用

    一、下载安装

    windows:

    https://git-for-windows.github.io/,下载文件后一路next

    linux:

    # ubuntu,debian#
    $ sudo apt-get install git
    #centos,redhat系统
    $ yum install git

     

    二、使用

    1、在开始菜单里找Git Bash

    2、自报家门

     

    3、cd进入到你要管理的文件夹下

    git init

    这个命令会将此文件夹变成版本库

     

    4、新建文件

    新建文件以后git status查看,会发现文件是红色,处于待提交状态

     

    5、提交文件

     

    //将 index.php文件提交到暂存区
    git add XXX//将 index.php文件提交到版本库,-m后是说明
    git commit -m "新建XXX"

     

    6、修改文件

    命令同提交,先add再commit,提交完了以后工作区会是干净的

     

     

    7、删除文件

    git rm xxx
    git commit -m "删除了XXX"

     

    8、查看日志

    一行展示

    git log --pretty=oneline

     

    9、版本管理

    //回退到f5616版本,根据版本号切换
    git reset --hard f5616

     

     8、将本地代码推到远程仓库

     

     10、配置ssh公钥免密推送

    a.获取ssh地址

    b.查看仓库地址:git remote -v

    如果有的话将其删除:

    命令:git remote remove <远程库名>
    示例:git remote remove origin

     

    c.配置ssh格式的远程仓库地址

    git remote add origin git@github.com:AiMovie/ceshi.git

     

    d.创建ssh key

    ssh-keygen -t rsa -C "git邮箱",一直回车,不用输入密码.完成后,可以在用户主目录里找

    到.ssh目录,内有id_rsa和id_rsa.pub两个文件. id_rsa是私钥,id_rsa.pub是公钥.
    这两把钥匙是成对的,可以让分别持有私钥和公钥的双方相互认识.

     /c/Users/young/.ssh/便生成了公钥

    若是linux,则cat ~/.ssh/id_rsa.pub查看

     

    如果要生成为其他的项目生成ssh公钥,则输入:/c/Users/ACER/.ssh/id_abc (这里的地址是我自己,要换成你们自己的 id_abc就是我起的文件名)

    这样便不会被覆盖

    e.将其复制到github添加

     

    f.push本地仓库到远程,就不用填密码了
    git push origin master

     

    11、拉取别人github的代码

    git pull 地址

    三、Git与SVN的不同

    Git为分布式版本控制器,SVN为集中式

    中心的svn服务器中,存储着代码版本的变迁,及日志.

    而git每个开发者的电脑上,都有完整的版本,日志,及分支信息.

    但开发者不依赖于服务器,可以查看日志,回退版本,创建分支.

     

    本质的区别在于:
    git服务器是供开发者"交换"代码,服务器数据丢了没关系,分分钟再建一台.
    svn的服务器,不仅交换代码,还控制着日志,版本,分支.服务器数据丢了就完了.

    ps:

    1、忽略文件

    laravel项目忽略文件是.gitignore,把要忽略的文件或者文件夹放在里面就可以了

     2、多人协作

    多人协作的工作模式通常是这样:

    1. 首先,可以试图用git push origin branch-name推送自己的修改;

    2. 如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;

    3. 如果合并有冲突,则解决冲突,并在本地提交;

    4. 没有冲突或者解决掉冲突后,再用git push origin branch-name推送就能成功!

    3、改bug

    修复bug时,我们会通过创建新的bug分支进行修复,然后合并,最后删除;

    当手头工作没有完成时,先把工作现场git stash一下,然后去修复bug,修复后,再git stash pop,回到工作现场。

    查看分支:git branch

    创建分支:git branch <name>

    切换分支:git checkout <name>

    创建+切换分支:git checkout -b <name>

    合并某分支到当前分支:git merge <name>

    删除分支:git branch -d <name>

    把分支代码拉到本地    git clone -b my-branch https://git@github.com/username/myproject.git

    4、分支管理

    首先,master分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活;

    那在哪干活呢?干活都在dev分支上,也就是说,dev分支是不稳定的,到某个时候,比如1.0版本发布时,再把dev分支合并到master上,在master分支发布1.0版本;

    你和你的小伙伴们每个人都在dev分支上干活,每个人都有自己的分支,时不时地往dev分支上合并就可以了。

    5、版本回退

    1、git reflog master (查看本地master分支历史变动纪录)

    2、git reset --hard <COMMIT_ID> (恢复到之前位置) git reset --hard master@{1}

  • 相关阅读:
    .net jquery ajax应用(后台)
    .net jquery ajax应用(前端)
    echarts 添加Loading 等待。
    js将数字转换为带有单位的中文表示
    关于Pre-bound JDBC Connection found! HibernateTransactionManager does not 异常小结
    java 并发容器一之ConcurrentHashMap(基于JDK1.8)
    java 并发容器一之BoundedConcurrentHashMap(基于JDK1.8)
    23中java设计模式(1)-- 策略模式
    解决Eclipse自动补全变量名的问题
    Tomcat+Jenkins+SonarQube+SVN+Maven 集成自动化环境搭建(Windows10环境下)
  • 原文地址:https://www.cnblogs.com/lamp01/p/7257374.html
Copyright © 2011-2022 走看看