正确使用Git版本控制工具

297 阅读3分钟

Git版本控制工具诞生于2005年,由linux之父Linus所开发的,这个也是市场上比较主流的版本管理。在Git之前Linux都是采用手工的方式来维护代码,因为他比较反感SVN需要连接网络才能进行工作。而Git与Svn最大的区别在于,Git是分布式、Svn是集中式。

集中式:有一台中心服务器,需要连接网络才能进行更新上传的操作。

分布式:只需要拥有一个自己的版本库,无需连接网络都能进行工作,提高了工作效率。

一、配置git

  • 设置git
git config --global user.email "xxx@gmail.com"
git config --global user.name  "xxx"

使用git config --list 查看配置是否成功 image.png

  • 创建仓库并初始化
mkdir prejectName      //创建项目目录名
cd    prejectName     //切换到项目目录中
git   init            // 初始化目录,使其成为可用的本地仓库
  • 创建忽略清单
touch .gitignore  // 其内容一行,表示一个忽略规则

二、工作区常用指令

git status -s //输出简要变更日志
    备注:
		? 没有添加到版本库中(即不会记录改动操作)
		A 已添加到本地代码仓库中
		D 被删除
		M 被修改
		I 被忽略(忽略清单中添加)
		
git add hello.cpp  //将hello.cpp文件添加到本地版本(暂存区)
git add .        //将当前中所有未托管的文件 全部添加到本地版本库(暂存区)
git commit -m "版本提交说明"

git log                 //查看日志
git log --pretty=oneline //查看简要日志

git diff filename       //对比当前版本和存储版本库中最新版本进行对比

git reset --hard HEAD^	 // 回退到上一版本(删除工作空间改动代码,撤销commit,撤销git add)

git reset --soft HEAD^	 // 回退到上一版本(不删除工作空间改动代码,撤销commit,不撤销git add)

git reset --hard xxxxxx	 // 对应版本的hash值的前6位
    备注: HEAD 指向当前版本
    
git reflog	             //查看git历史操作
git checkout  --file  //撤销编辑的文件(1、没有git add 回到修改前的状态;2、已经添加到暂存区,回到添加到暂存区后的转态)
  • 删除暂存区或分支上的文件, 但本地又需要使用, 只是不希望这个文件被版本控制
git rm --cached file_path
git commit -m 'delete remote somefile'
git push
  • 删除暂存区或分支上的文件, 同时工作区也不需要这个文件
 git rm file_path
 git commit -m 'delete somefile'
 git push

三、连接远程仓库使用

  • ssh配置与Git产生联系:
mkdir ~/.ssh   //创建.ssh目录
cd ~/.ssh      //切换目录
ssh-keygen -t rsa -C "xxx@gmail.com" //生成KEY 
settings >> SSH AND GPG Keys >> New SSH Key >> 
ssh git@github.com  //检测是否配置成功
  • 创建代码管理仓库
git remote add origin https://github.com/qiuhe/firsttest.git
// 注  qiuhe: GIthub账号名    firsttest:项目名称  远程仓库名:origin

git remote -v  // 查看远程仓库
git remote rm origin   // 删除远程仓库

git push origin maste //推送本地仓库内容到远程仓库
git pull origin master  //获取远程仓库到本地仓库

git clone https://github.com/qiuhe/firsttest.git  //克隆仓库内容

git branch           // 查看分支
git checkout -b test //创建test分支,并切换到test分支
git checout master   //切换分支
git checkout master   // 将现在所处分支合并到master分支
git checkout -b test /origin test //抓取分支