Git使用及简介(包含相关命令)

Git 命令

1.版本控制工具。

1.1本地版本控制系统

1.2集中化版本控制系统

CVS,Subversion(svn) +以及 Perforce

问题:单点故障和磁盘损坏、数据丢失等问题

1.3分布式版本控制系统

Git,Mercurial,Bazaar 以及 Darcs

Git项目主要由工作区、暂存区和Git仓库(本地库)三部分组成,

工作区存放原始文件、暂存区存放要提交的文件、本地库存放要远程的文件

2.windows安装Git

官网(https://git-scm.com/downloads)
下载需要的版本文件
首次安装需要设置用户名,邮箱

git --version 查看版本信息
git config --global user.name "your_username" 设置用户名
git config --global user.email your_email@domain.com  设置用户邮箱
git config --list 查看所有配置
git config --global 同步配置到本机上的所有Git仓库,也可以对不同的仓库指定不同的用户名和email

Git三种状态:

状态描述
已提交(committed)已提交表示数据已经安全的保存在本地数据库中。
已修改(modified)已修改表示修改了文件,但还没保存到数据库中。
已暂存(staged)已暂存表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。

Git工作区域:

分类描述
工作区简单的理解为在电脑里能看到的目录,比如自己创建的本地项目目录
暂存区Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git自动创建的第一个分支master,以及指向master的一个指针叫HEAD。
Git仓库工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。

Git 基本工作流程描述:

  • 在工作区中修改某些文件。
  • 对修改后的文件进行快照,然后添加到暂存区。
  • 提交更新,将保存在暂存区域的文件快照永久转储到 Git 仓库中。

执行流程图:

在这里插入图片描述

3.创建版本库并提交文件

git init    初始化本地仓库

git status 查看工作目录与暂存区文件状态

git add <path>  添加文件到暂存区 <path> 可以是文件也可以是路径 

git commit  -m  “说明”   加入本次提交的记录说明 方 便后续查看提交或改动记录

git log 	显示提交日志信息

4.时光穿梭机

4.1 修改文件与文件提交

对项目不同版本的文件进行查看,项目历史版本,未来版本的切换操作。

git status 可以看到git 检测到文件被修改

git add	执行添加操作命令

git commit  -m  "说明"       执行提交

git diff HEAD  -- 文件   与版本库内容进行比较

git reset HEAD 文件

"差异比较说明

---:表示变动前的文件

+++:表示变动后的文件

变动的位置用两个@作为起首和结束

@@ -1,2 +1,3 @@:减号表示第一个文件,“1"表示第1行,“2"表示连续2行。同样的,”+1,3"表示变动 后,成为第二个文件从第1行开始的连续3行。”

4.2 版本回退

 git reset 命令用于将当前HEAD复位到指定状态。一般用于撤消之前的一些操作(如:git add,git commit等)。

git log 查看提交历史记录 包括用户名、邮箱、时间、文件编号

git log  --pretty=oneline  简化输出

cat 文件  查看文件内容

git reset --hard HEAD^ 回退到上一版本

git reset --hard HEAD~版本 回退到上n版本

git reset  对应版本唯一标识符  可完成回到未来版本的操作    

git reflog  查看记录在本地的HEAD和分支引用在过去指向的位置


HEAD^:将指针指向上一个版本,如果是上上一个就是 HEAD^,上上上一个HEAD^^,但这样记就比较 麻烦,如果回退版本较多,简写为 HEAD~100 往前回退100个版本 ~后跟数字即可。

4.3 文件删除

 git status 命令可以看到Git 能够追踪到文件被删除情况,注意此时版本库中文件并没有被删除,只是工作目录中文件被删除
 
 git checkout -- 文件名  还原文件
 
 git rm 文件名   执行删除操作

5.远程仓库

Git 远程仓库,GitHub(https://github.com/ )是比较知名的一个,目前已被微软收购,

而国内比较知名的当属码云(https://gitee.com/ )了,

公司出于安全有自己的Git远程仓库

克隆远程项目到本地
在指定磁盘目录下,执行下列命令

git clone   (sshcode相应复制地址)

6.Git分支操作

git checkout branch 		切换到指定分支

git checkout -b new_branch   新建分支并切换到新建分支

git branch -d branch  		删除指定分支

git branch    						查看所有分支, 并且*号标记当前所在分支

git merge branch  			 合并分支

git branch -m | -M  oldbranch newbranch    重命名分支,如果newbranch名字分支已经存在,则需要使用-M强制重命名,否则,使用-m进行重命名。

7.分支Push与Pull操作

git branch -a 查看本地与远程分支

git push origin branch_name 推送本地分支到远程

git push origin  :remote_branch 删除远程分支(本地分支还在保留)

git checkout -b local_branch origin/remote_branch 拉取远程指定分支并在本地创建分支

8.标签管理

git tag tag_name 新建标签 默认为HEAD

git tag -a tag_name -m 'xxx' 添加标签并指定标签描述信息

git tag 查看所有标签

git tag -d tag_name 删除一个本地标签

git push origin tag_name 推送本地标签到远程

git push origin --tags 推送全部未推送过的本地标签到远程

git push origin :refs/tags/tag_name 删除一个远程标签

9.分支操作冲突与解决

9.1本地分支操作冲突
不同分支提交相同的文件内容,合并时会产生冲突

cat 冲突文件名  查看冲突文件内容
git log --graph --pretty=oneline 查看分支合并图

冲突符号内容:

Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容 
<<<<<<< HEAD 当前git 指向分支
======= 分离不同分支修改的内容
>>>>>>> leaf01 leaf01 与 master 在git01.txt 同一行同时出现了修改操作 
这里git 是不允许 发生的

解决方法
(实际开发视情况而定 可以将内容合并为一行暂存,修改)

9.2 多人协同操作冲突
用户推送的文件与当前客户端推送内容存在冲突

此时解决方式Git 已有对应提示 Push 之前先执行Pull 操作
将远程文件拉取到本地 解决完冲突后再次执行Push 操作

先执行Pull 拉取操作
查看冲突文件内容
可以本地先处理冲突 将文本进行合并 然后提交 在 push 操作即可
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值