Git

Git

git 简介

产生历史

git 是目前最先进的分布式版本控系统。在开源的 Linux 发展的时候,代码的管理是复制手工合并的,效率很低。于是 Linus 选择了一家集中式的版本控制系统,但是由于中间合作出现问题,于是 Linus 就自己开发了一套 git分布式的版本控制系统,之后 Linux 开源代码的管理就放在了 git 上管理了。之后 GitHub 的上线也让 git 风靡至今。

  • git 的两大特点
    • 多人合作开发代码
    • 分布式:有一台服务器存储代码,每个人从服务器克隆代码到本地。然后每个人可以提交自己的修改和拉取别人的修改。

安装和使用 git

  • 安装 git:sudo apt install git
  • 使用 git:
    • 创建一个仓库:git init
    • 创建一个版本:git add 文件名git commit -m '版本1'
    • 查看历史版本:git log
    • 版本的回退:git reset --hard HEAD^。其中 HEAD 表示当前最新版本,HEAD表示当前版本的前一个版本,HEAD^表示当前版本的前前个版本,也可以使用 HEAD~1 表示当前版本的前一个版本,HEAD~100 表示当前版本的前 100 版本。但是版本的回退并没有删除之前的记录
    • 版本的倒回退:git reset --hard 版本号。版本号就是提交的摘要信息,通过git relog可以查看。

工作区和暂存区

  • 工作区:电脑中的一个目录。
  • 暂存区:工作区中有一个隐藏目录.git,这是 git 的版本库:其中最重要的就是称为暂存区的东西,还有 git 为我们自动创建的第一个分支master以及指向master的指针HEAD

git 工作流程

  1. 在工作区进行创作修改,通过git add 文件名将修改添加到暂存区;或者使用git checkout -- 文件名丢弃修改。
  2. 通过git commit -m '说明'把暂存区的所有内容提交到当前分支,也就是创建了一个版本。
  3. 通过 git status 命令查看当前工作树的状态。
  • 当修改没有添加到暂存区时可以使用git checkout -- 文件名来丢弃修改。
  • 但是如果修改已经添加到暂存区,可以使用git reset HEAD 文件名来取消暂存。
  • 如果修改已经添加到暂存区并且已经创建了一个版本,那么需要用到版本的回退,git reset --hard HEAD^

对比文件的不同

  • 对比工作区和暂存区的不同:git diff HEAD -- 文件名
  • 对比两个版本的不同:git diff HEAD HEAD^ -- 文件名

分支管理

分支可以类似于两个平行的宇宙。主要用于去开辟一个新的分支去实现一个新的功能,这个分支并不会对其他分支产生任何影响。当功能开发完善之后,还可以将新分支的内容一次性合并到主分支master上。这样既安全有不影响其他人的正常工作。

创建和合并分支

在创建仓库时会默认创建一个主分支master,指针是HEAD。当创建一个分支dev时,将HEAD指针指向dev分支。可以指定当前工作分支在哪一个分支上,之后的修改提交就会记录在该分支下。

  • 查看分支:git branch
  • 创建分支:git branch 分支名
  • 创建并切换分支:git checkout -b 分支名
  • 切换分支:git checkout 分支名
  • 将某个分支合并到 master:git merge 分支名
  • 删除分支:git checkout -d 分支名

合并冲突

当两个分支没有同时有两个相同的修改时,合并时默认采用Fast-forward,即快速合并。但是如果两个分支修改的内容有冲突时会发生合并冲突,这时就需要手动解决冲突。

  • 禁止快速合并:git merge --no-ff -m '版本信息' 分支名

bug 分支

在现实开发中,如果有 bug 需要修复,在 git 中可以使用分支解决。每一个 bug 都可以通过一个新的临时分支来修复,修复后,合并分支,然后将临时分支删除。

GitHub 的使用

创建仓库

  • Add .gitignore:增加忽略文件或文件夹,一般用于忽略由于运行产生的中间文件。如 Python 程序产生的 pyc 文件等。

添加 ssh 账户

如果某台电脑需要与 GitHub 仓库进行交互就需要本台电脑的 ssh 公钥添加到 GitHub 账号上。

  • 在本机生成 ssh 秘钥:ssh-keygen -t rsa -C "123@126.com"
  • 将用户目录下的.ssh文件夹下的id_rsa.pub公钥添加在 GitHub 设置中。
  • 验证是否添加成功:ssh -T git@github.com
  • 设置 username 和 email,因为 github 每次 commit 都会记录这些信息:
    • git config --global user.name "name" //你的 GitHub 登陆名
    • git config --global user.email "123@126.com" //你的 GitHub 注册邮箱

克隆和上传项目

  • 克隆:git clone git@github.com:hzg0226/haha.git
  • 上传:git remote add origin git@github.com:hzg0226/hehe.git

推送和拉取代码

  • 推送代码:git push origin 分支名
  • 拉取代码:git pull origin 分支名
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值