中国最全IT社区平台 联系我们 | 收藏本站
阿里云优惠2阿里云优惠1
您当前位置:首页 > 互联网 > (1)版本控制工具之Git

(1)版本控制工具之Git

来源:程序员人生   发布时间:2018-06-11 17:25:45 阅读次数:257次

  • 甚么是Git
  • 安装Gitwindow版本
  • Git本地经常使用命令
    • 1 初始化1个仓库在我本机的的Emygit
    • 2 将1个文件上传到版本库
    • 3 和版本回退相干的命令
    • 4 和分支相干的命令本地分支
      • 41分支公共命令
      • 42快速合并分支
      • 43不使用快速合并分支1般我们用这类情况
      • 44解决分支冲突
  • Git远程经常使用命令
    • 1 创建远程仓库注意要注册1个oschina账户并注册密钥
    • 2 远程经常使用命令
    • 3 远程分支命令
  • 总结

1.甚么是Git?

      Git是1个散布式的版本控制工具。版本控制主要解决的问题有:

  • 代码管理混乱
  • 备份多个版本,占用磁盘空间大
  • 代码出错以后,难于恢复至之前正确版本
  • 项目版本发布困难等等

2.安装Git(window版本)

      在Git官网下载window版本。官方下载网址为:Git Window版本下载

  • 当安装成功以后,右击鼠标会出现下图

这里写图片描述

  • 右键Git Bash ,配置Git的全局配置
//填写自己的用户名
git config --global user.name "wpx"
//填写自己的1个邮箱,注意这个邮箱,以后链接远程库会需要
git config --global user.email "260129327@qq.com"

这里写图片描述

  • 当设置成功以后,在本地home目录下面会出现1个git配置文件

这里写图片描述

3.Git本地经常使用命令

3.1 初始化1个仓库(在我本机的的E:\mygit

//意味着,mygit文件夹,允许git控制
git init

3.2 将1个文件上传到版本库

 //将readme.txt文件长传到暂存区,注意:文件名有引号
 git add "readme.txt"
 //将暂存区的的文件转移到版本库(只是把暂存区的文件转移到版本库)
 git commit -m "add a file"
 //查看git仓库的状态
 git status 

3.3 和版本回退相干的命令

  • 通过相对版本号回退
 //回退到某1个版本
 git reset --hard HEAD~index
 //假定回退到(上1个)版本
 git reset --hard HEAD~1
  • 通过commit id(版本号)回退版本
//通过日志查看版本记录
git log
//通过版本号回退(commit_id是具体的id号)
git reset --hard commit_id

这里写图片描述

  • 撤消修改(如果没有提交暂存区)
//注意:没有提交到暂存区。如果提交到暂存区就不能用这个命令(注意文件名没有引号)
//让这个文件回到最近1次git commit或git add时的状态
git checkout -- readme.txt
  • 撤消修改(提交到了暂存区)
//将版本库的文件拿到工作区,同时清空暂存区(注意此时:文件名没有引号)
git reset HEAD readme.txt
  • 如果文件提交到了版本库,可使用版本回退
  • 删除版本库中的文件(注意是本地文件)
//删除本地文件
rm readme.txt
//删除版本库文件
git rm readme.txt
//提交改变
git commit -m "delete file"

3.4 和分支相干的命令(本地分支)

3.4.1分支公共命令

  • 创建1个分支

//创建1个分支叫做dev
git branch dev
//切换到dev分支
git checkout dev
//或:
//  创建并切换到dev分支
git checkout -b dev
  • 查看当前分支
git branch

这里写图片描述

3.4.2快速合并分支

  • 合并分支
//注意此命令是在master分支上运行,也就是master合并dev分支(不带参数代表是快速合并以下图所示),只是HEAD指针产生改变了
git merge dev

这里写图片描述

这里写图片描述

  • 删除分支
git branch -d dev

3.4.3不使用快速合并分支(1般我们用这类情况)

//-m 是输入日志信息(可以不写)
git merge --no-ff -m "merge with no-ff" dev
  • 分支图是这样的

这里写图片描述

3.4.4解决分支冲突

当我们的分支有冲突时,履行git merge dev 出现下面毛病,同时文件变成了:

这里写图片描述

这里写图片描述

  • 修改文件以后重新提交,此时的分支图是这样

这里写图片描述

4.Git远程经常使用命令

      在这里使用OSChina的git仓库。OSChina的Git仓库可以创建私有项目。

4.1 创建远程仓库(注意要注册1个oschina账户),并注册密钥

  • 登录oschina创建1个远程仓库

这里写图片描述

  • 创建私钥和公钥(1直点肯定)
//后面的字符串写自己的邮箱(其实可以随意写)
ssh-keygen -t rsa -C "260129327@qq.com"

这里写图片描述

  • 创建完成在改目录下有1个.ssh文件(C:\Users\wpx)注意:此时文件夹下面有两个文件

这里写图片描述

  • id_rsa.pub文件的内容拷贝到oschina(如图所示)

这里写图片描述

添加公钥内容:
这里写图片描述

成功:
这里写图片描述

4.2 远程经常使用命令

  • 克隆远程库(在硬盘随意找个地方,最好不要有中文路径,1般是第1次将项目拷贝到本地)
//注意:  1.后面的地址写你刚刚创建的仓库地址
//       2.仅仅将远程的master分支克隆到本地
//       3.远程的分支默许名称为origin
git clone git@git.oschina.net:alrmm/mygit.git

这里写图片描述

第1次使用git远程仓库时,记得这里1定要写yes(不要不写!!!)

这里写图片描述

选择yes以后.ssh文件夹变成了3个文件

这里写图片描述

  • 将项目推送到远程
//如果项目没有和远程仓库关联,先和远程仓库关联
//origin是远程仓库的名称(其实可以随意写,就是1个代号)
git remote add origin git@git.oschina.net:alrmm/mygit.git
//将项目推送到远程(origin要和关联仓库的名称对象,-u代表既推送分支,也关联分支,可以简化命令,1般是第1次推送)
git push -u origin master
//第2次推送可以这样(将本地的对应分支推送到远程)
//
git push
  • 将项目pull到本地(1般是开发进程中先从远程下载git项目里的文件,然后将文件与本地的分支进行merge。)
//注意:
//      1 如果是个人开发,不存在冲突,可以直接pull
git pull git@git.oschina.net:alrmm/mygit.git
  • 将他人的项目拷贝到我的仓库使用fork命令

4.3 远程分支命令

  • 默许情况下,只会master拷贝到本地(这里将dev分支拷贝到本地)
//将远程的dev分支拷贝到本地的dev分支
git checkout -b dev origin/dev
  • 将本地的dev分支推送到远程
git push origin dev
  • 远程分支合并冲突问题(多个合作),1般都是先pull下来解决冲突,然后在push,注意:推送的都是本地版本库的文件,我们1定要提交到本地版本库在push到远程

5.总结

在本篇博客中主要介绍了:

  • 如何安装Git
  • 在本地中如何使用Git
  • 如何链接远程 Git仓库
  • 如何解决冲突问题(多人协作)
生活不易,码农辛苦
如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠
程序员人生
------分隔线----------------------------
分享到:
------分隔线----------------------------