Git & Github

Git介绍


  • 主要的功能 :分布式的软件版本控制
  • 开源的高扩展的分布式全文搜索引擎,近乎实时的存储,检索数据,本身扩展性很好,可以扩展到上百台服务器,处理PB级别的数据。

Git软件安装


安装地址 :Git - 安装 Git (git-scm.com)

  • Git GUI : Git 提供的图形化界面工具
  • Git Bash : Git 提供的命令行工具
# window 版本git

wzh@LAPTOP-947L69HL MINGW64 ~
$ git --version
git version 2.25.0.windows.1

Git管理文件夹

# 通过Git hash here进入git界面

# 1、Git初始化  - 目录下生成隐藏文件
wzh@LAPTOP-947L69HL MINGW64 /d/学习文件/Python Django项目前导/20200309-第三讲-初试Git
$ git init
Initialized empty Git repository in D:/学习文件/Python Django项目前导/20200309-第三讲-初试Git/.git/

# 2、查看 Git 状态(管理目录下文件的状态)
wzh@LAPTOP-947L69HL MINGW64 /d/学习文件/Python Django项目前导/20200309-第三讲-初试Git (master)
$ git status
On branch master

No commits yet

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        "\344\270\212\350\257\276\350\247\206\351\242\221/"
        "\344\270\212\350\257\276\350\265\204\346\226\231.zip"
        "\344\270\212\350\257\276\350\265\204\346\226\231/"

nothing added to commit but untracked files present (use "git add" to track)


# 3、管理指定的文件
wzh@LAPTOP-947L69HL MINGW64 /d/学习文件/Python Django项目前导/20200309-第三讲-初试Git
$ git add index.html
$ git add .


# 4、配合个人信息
git config --global user.email "you@example.com" 
git config --global user.name "Your Name"



# 5、生成版本 - 查看当前文件的提交状态(缓存区状态)
$ git status
- # 红色:新增 或 修改了原来的文件
 - # 绿色: 已经管理起来的文件
On branch master

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
        new file:   test1.txt

$ git commit -m '描述信息' 


# 6、查看版本库信息 
$ git log
commit 3ef5feaf62ae28c8af043ffcfe8a9d52959e3266 (HEAD -> master)
Author: li chunlei <375763410@qq.com>
Date:   Tue Sep 6 06:35:52 2022 +0800

    test1 版本1


# 第二阶段:拓展新功能 
$ git add     # 推送至暂存区
$ git commit -m "短视频"    # 推送到版本库


# 7、第三阶段:约饭功能 回滚至之前版本  
# (HEAD -> master) 代表当前的版本
 $ git log
commit 3ef5feaf62ae28c8af043ffcfe8a9d52959e3266 (HEAD -> master)
Author: li chunlei <375763410@qq.com>
Date:   Tue Sep 6 06:35:52 2022 +0800

    test1 版本1
 
$ git reset --hard ef5feaf62ae28c8af043ffcfe8a9d52959e3266 (HEAD -> master) 


# 查看回滚后的版本信息 
$ git reflog  
$ git reset --hard 版本号


# 对缓存区的文件进行变更为 工作区
$ git reset HEAD index.html4


# 对工作区的文件进行恢复为 已控制文件
$ git check checkout index.html

分支管理

分支的类型

  • master分支 :生产分支
  • devlop开发分支 : 开发部门的主要分支,阶段开发完成后,需要合并的 master分支上
  • featurev/ xxx 分支 :从devlop 创建的分支,一般是同期并行开发,分支开发完成完成后,合并到 devlop分支
  • hotfix/xxx分支 :从master派生的分支,一般作为线上bug修复使用,修复后需要合并到 master、test、develop分支

# 查看当前分支信息(查看所在分支)
wzh@LAPTOP-947L69HL MINGW64 /d/学习文件/Python Django项目前导/20200309-第三讲-初试Git (master)
$ git branch
  dev
* master

# 创建所在分支
$ git branch "分支名字"

# 切换分支
$ git checkout dev
Switched to branch 'dev'

$ git branch
* dev
  master
   
 
# 切换到主线分支
# 合并分支
$ git merge "分支名称"
 
# 切换到主线分支
# 删除分支
$ git branch -d "分支名称"

GitHub 代码托管的仓库

  • 注册github账号、创建远程仓库、再执行命令将代码上传到github
  • 用 Git 向github 推送代码
# 本地生成密钥对
ssh-keygen -t rsa

# 查看生成的公钥信息
cat ~/.ssh/id_rsa.pub

# 将秘钥复制到github或码云端

# 完整是否ssh配置成功
$ ssh -T git@gitee.com
Hi WZH(@wzh131211)! You've successfully authenticated, but GITEE.COM does not provide shell access.

# github中选择
new repository
create a new repository
# 项目名称(Github界面填写)
repository name

# 1、给远程仓库起别名  origin为起名别名  (地址为创建项目时生成)
git remote add origin "远程仓库地址"

# 2、向github推送代码(推送至分支)
git push -u origin "分支名"

git push -u origin "本地分支名""云端分支名"

# 2、向github推送代码
git puxaomgigin "分支名称"  # 分支可以时master、或其他

#   在公司开发
# 3、克隆远程仓库代码(代码会在 cmd 窗口所在目录下)
git clone "远程仓库地址" # 将代码克隆到本地



# 将远程仓库里面更新的抓取到本地,但不会合并
git fetch [remote anme] [branch name]

# 将远程仓库里面更新内容抓取到本地,会进行合并
git pull [remote anme] [branch name]

# 4、切换分支(切换到分支后进行开发)
git checkout "分支名"

# 把 master 合并到dev(在dev分支继续合并)
git merge master 
# 提交代码(公司开发完)
git add
git commit -m "xxx"
git push origin dev 


# 回家后拉取代码下来
git checkput dev #  先切换到dev 分支
git pull  origin "dev"  # 拉取最新代码
git push origin dev # 将开发完成的文件推上去


# 开发完成上线
git checkout master  # 切换到主线
git merge dev    # 合并 dev 分支
git push origin master # 提交主线

rebase (变基

  • 保持提交记录的简洁 — 合并版本
# 合并版本
git rebase -i HEAD~2    # 合并最近的2个版本
git rebase -i v1    # 合并v1版本之后的所有版本
git rebase -i "版本号"    # 合并版本号之后的所有版本

多人协同开发流程

  • 方式1(合作者) — 用户添加到仓库合作者之后,该用户就可以向当前仓库提交代码
  • 方式2(组织) — 将成员邀约进入组织,组织下可以创建多个仓库,组织成员可以向组织下仓库提交代码
# 合作者方式
settings / manage access / invite a collaborator("邀请人员加入")
# 创建组织   组织/多个仓库/多个用户
1、Choose Team for Open source   # 创建组织(选择)
2"用户名 + 邮箱 + 隶属于账号"
3"添加用户 + 邀请成员"
4、set up your first repository # 组织下的仓库
5"提交代码 + 打标签(版本号)"
6、settings/Member privieges  # 邀请成员加入(按权限划分)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值