git仓库介绍及操作

什么是git? 有什么作用? 如何初始化一个本地仓库

git, 分布式版本控制工具 可以实现软件的版本控制,在多个版本之间切换; 可以实现多分支开发,提高开发效率; 可以实现历史记录,历史状态的恢复; 团队内部实现权限管理等。 初始化本地仓库: 项目根目录下git init

Git 与 SVN 区别点:

  • Git 是分布式的,SVN 是集中式:这是 Git 和其它非分布式的版本控制系统,最核心的区别,例如 SVN,CVS 等

  • Git 把内容按元数据方式存储,而 SVN 是按文件:所有的资源控制系统都是把文件的元信息隐藏在一个类似 .svn、.cvs 等的文件夹里。

  • Git 分支和 SVN 的分支不同:分支在 SVN 中一点都不特别,其实它就是版本库中的另外一个目录。

  • Git 没有一个全局的版本号,而 SVN 有:目前为止这是跟 SVN 相比 Git 缺少的最大的一个特征。

  • Git 的内容完整性要优于 SVN:Git 的内容存储使用的是 SHA-1 哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。

git基本操作

创建仓库

在==项目根目录下==执行如下:

git init

或者直接克隆远程仓库:

git clone url

配置签名

==局部配置==

git config user.name "自定义名"
git config user.email "自定义邮箱"

==全局配置==

git config --global user.name "donghaiming"
git config --global user.email "haiming_dong@126.com"

提交版本

# 将test.txt文件增加到暂存区
git add test.txt

# 将所有文件增加到暂存区
git add ./

# 提交版本 到本地仓库
git commit -m '版本号或描述信息'

查看日志

git log
git log --oneline  # 日志过长时,按行显示
​
git reflog # 历史操作

版本回退

git reset --hard HEAD^  # 回退到当前版本的前一个版本  HEAD^^表示回退到当前版本的前两个版本
git reset --hard HEAD`1  # 回退到当前版本的前一个版本  HEAD`5表示回退到当前版本的前5个版本
git reset --hard 版本号序号  # 回退到指定的版本

查看状态

git status

撤消 工作区 的修改

git checkout  --  <文件名>

撤消暂存区的修改

git reset HEAD <文件名>  # 先撤消暂存区的修改,从暂存区撤回
git checkout -- <文件名>  # 再撤消工作区修改

对比文件的内容

对比本地仓库(HEAD) 与工作区文件的差异

git diff HEAD -- <文件名>

对比两个版本之间某个文件的不同

git diff HEAD HEAD^ -- <文件名>

删除文件

rm <文件名>

查看分支

git branch -v

创建分支

# 创建分支,不切换
git branch <分支名>
# 切换分支
git switch <分支名>
or
git checkout <分支名>
​
​
# 创建分支,并切换  
git checkout -b <分支名>  
# 创建dev分支,并切换
git checkout -b dev 

合并分支到主分支

# 1. 切换到主分支
git checkout master
# 2. 合并分支dev 到主分支
git merge dev

==注意:合并分支内容需要先切换到主分支上==

删除分支

# 删除一个分支
git branch -d <分支名>  
# 删除dev分支
git branch -d dev 

查看合并后的日志

git log --pretty=oneline

解决合并冲突

某分支和master中同一个文件都有改动时,合并该分支到主分支时会有冲突,如下: 在这里插入图片描述

解决方案:

  1. 在master主分支上,使用vim打开冲突的文件,会看到如下内容: 在这里插入图片描述

  2. 手动删除冲突的符号,得到如下内容: 在这里插入图片描述

  3. 保存退出,esc 然后 shift + zz

  4. 将冲突文件增加到暂存区,git add 文件名

  5. 提交到本地仓库, git commit -m '描述'

 bug分支

软件开发中,bug就像家常便饭,有了bug就需要修复,在git中,由于分支功能强大,所以, 每个bug都可以通过一个新的临时分支来修复,修复后,合并分支,然后将临时分支删除。

接到一个修复bug的任务,当手头的工作还没有完成时,git中还提供了一个stash功能, 可以把当前工作状态保存起来,等修复完bug后,再恢复状态继续工作。

git stash  # 保存工作现场(添加到暂存区的文件,尚未提交到本地仓库)
git stash list  # 列出工作现场
git stash pop  # 恢复工作现场
  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值