软件构造第一次学习博客——Git的基本介绍与使用

软件构造第一次学习博客——Git的基本介绍与使用

PS:之前写的博客都在本地文档中保存,之后会陆续更新到CSDN博客中。
1.什么是Git?
Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
2.特点
分布式和集中式的最大区别在于开发者可以本地提交。每个开发者机器上都有一个服务器的数据库。
Git的功能特性:
从一般开发者的角度来看git有以下功能:
1:从服务器上克隆数据库(包括代码和版本信息)到单机上。
2:在自己的机器上创建分支,修改代码。
3:在单机上自己创建的分支上提交代码。
4:在单机上合并分支。
5:新建一个分支,把服务器上最新版的代码fetch下来,然后跟自己的主分支合并。
6:生成补丁(patch),把补丁发送给主开发者。
7:看主开发者的反馈,如果主开发者发现两个一般开发者之间有冲突(他们之间可以合作解决的冲突),就会要求他们先解决冲突,然后再由其中一个人提交。如果主开发者可以自己解决,或者没有冲突,就通过。
8:一般开发者之间解决冲突的方法,开发者之间可以使用pull 命令解决冲突,解决完冲突之后再向主开发者提交补丁。
3.目录结构
假如现在有一个工程被git管理,它分为三个部分:本地工作区,本地版本库(CMDB)的远程版本库。其中本地版本库有一个暂存区。
本地工作区就是你的工程所对应的本地文件夹
本地版本库是工作区(本地文件夹)下的.git隐藏文件夹。
远程版本库是你的工程在网络上的备份。
4.文件
文件时Git的基本配置项SCI
当一个文件被创建或者修改时,它与本地版本库中的相应文件不一样了,此时它处于“已修改”状态。
已修改的文件,可以通过git add命令,添加到暂存区,此时它处于“已暂存”状态。
已暂存的文件,可以通过git commit,把暂存区的文件汇总成一个commit,然后提交到本地版本库,此时它处于“已提交“”状态。
也可以通过git commit -a命令将已修改的文件提交commit。
5.Git基本操作
git status可以查看当前工作目录的状态。
显示出来的文件总共有三种状态分别是
1.已添加至暂存区,未提交的(add后未commit的文件)
2.已修改,未暂存的
3.为追踪到的文件
git diff比较暂存区和工作区的文件的差异
git diff HEAD可以查看某个commit中的文件和当前工作区中的文件的差别
想要把本地的提交记录提交到远程,可以执行git push命令。
如果要把远程的提交记录拉回到本地,可以执行git fetch命令。
如果要把远程的工程下载到本地,可以执行git clone命令
如果要把远程工程拉到本地,并且立即和自己的本地版本合并,可以用git pull命令。
要撤销本地工作区到暂存区的更改,可以用git reset
要撤销commit,可以用git reset
6.分支
使用分支,相当于从现有的版本线上又分出来一条,可以加一些和以前不一样的版本分别管理,还可以合并,非常方便。
一次只能在一个分支上工作,要跳转分支,需要git checkout
要创建新分支,可以用git checkout -b
如果两个分支有共同的祖先,在某个时刻可以把这个有共同祖先的分支和自己合并,命令是git merge
7.总结
(参照github官方的说明文档)


安装Git
GitHub提供了包含图形界面的桌面客户端,通过客户端可以完成大部分常用的仓库操作,同时可以自动更新Git的命令行版本,以适应新的场景。
GitHub Desktop
https://desktop.github.com/
GitHub的Linux和POSIX版本可以在官方的Git SCM网站上获取。
Git 全平台版
http://git-scm.com
指令操作
配置工具
对所有本地仓库的用户信息进行配置
$ git config --global user.name “[name]”
对你的commit操作设置关联的用户名
$ git config --global user.email “[email address]”
对你的commit操作设置关联的邮箱地址
创建仓库
创建一个新的仓库或者从一个现有的链接获取仓库
$ git init [project-name]
创建一个本地的仓库,并设置名字
$ git clone [url]
下载一个项目以及它所有的版本历史
更改
检查已有的编辑并执行commit操作
$ git status
列出所有新建或者更改的文件,这些文件需要被commit
$ git diff
展示那些没有暂存文件的差异
$ git add [file]
将文件进行快照处理用于版本控制
$ git diff --staged
展示暂存文件与最新版本之间的不同
$ git reset [file]
将文件移除暂存区,但是保留其内容
$ git commit -m"[descriptive message]"
将文件快照永久地记录在版本历史中
批量更改
命名一系列commit以及合并已完成的工作
$ git branch
列出当前仓库中所有的本地分支
$ git branch [branch-name]
建立一个新分支
$ git checkout [branch-name]
切换到一个特定的分支上并更新工作目录
$ git merge [branch-name]
合并特定分支的历史到当前分支
$ git branch -d [branch-name]
删除特定的分支

重构文件
重定位并移除版本文件
$ git rm [file]
从工作目录中删除文件并暂存此删除
$ git rm --cached [file]
从版本控制中移除文件,并在本地保存文件
$ git mv [file-original] [file-renamed]
改变文件名并准备commit
停止追踪
不包含临时文件和路径
.log
build/
temp-

文本文件.gitignore可以防止一些特定的文件进入到版本控制中
$ git ls-files --others --ignored --exclude-standard
列出所有项目中忽略的文件
保存临时更改
暂存一些未完成的更改
$ git stash
临时存储所有修改的已跟踪文件
$ git stash pop
重新存储所有最近被stash的文件
$ git stash list
列出所有被stash的更改
$ git stash drop
放弃所有最近stash的更改
查阅历史
浏览并检查项目文件的发展
$ git log
列出当前分支的版本历史
$ git log --follow [file]
列出文件的版本历史,包括重命名
$ git diff [first-branch]…[second-branch]
展示两个不同分支之间的差异
$ git show [commit]
输出元数据以及特定commit的内容变化
撤销commit
擦除错误并更改历史
$ git reset [commit]
撤销所有[commit]后的的commit,在本地保存更改
$ git reset --hard [commit]
放弃所有更改并回到某个特定的commit
同步更改
注册一个远程的链接,交换仓库的版本历史
$ git fetch [remote]
下载远程仓库的所有历史
$ git merge [remote]/[branch]
合并远程分支到当前本地分支
$ git push [remote] [branch]
上传所有本地分支commit到GitHub上
$ git pull
下载书签历史并合并更改

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值