git入门笔记

人走茶凉 提交于 2019-12-09 19:30:44

好久没有写博客了,来水一篇。学习视频是b站的黑马-Git零基础入门到实战详解。这个笔记还有一些不足之处,但git大致使用流程讲清楚了。
笔记也参考了Git和GitHub详解
最后,关于git知乎上有不少有优秀的回答也是学习途径。

Git和GitHub详解

Git基础

Git 下载和安装

  • 下载地址: https://git-scm.com/downloads
  • 使用默认值安装
  • 资源管理器内单击鼠标右键选择 Git Bash Here
  • 输入git --version 检查是否安装成功

Git 基本工作流程

在这里插入图片描述

git 仓库 暂存区 工作目录
用于存放提交记录 临时存放被修改的文件 被Git管理的项目目录

Git使用前的配置–本地仓库的使用流程

配置用户姓名和邮箱

在使用前告诉git你是谁:

  1. 配置姓名 $ git config --global "user.name xxxx"

  2. 配置邮箱 $ git config --global "user.email xxxx@xxxx.com"

  3. 查看配置是否成功 $ git config --list

注意:

  1. 更改–>重复上述命令
  2. 也可直接修改 C:\Users\用户\.gitconfig
  3. 创建本地仓库应该注意的事项:
    在这里插入图片描述

提交步骤

  1. git init 初始化git仓库
  2. git status 查看文件状态
  3. git add 文件列表 追踪文件
    在这里插入图片描述
  4. git commit -m 提交信息 向仓库提交代码
  5. git log 查看提交记录

版本回退

在这里插入图片描述

git回退到过去版本号后,git log只能查看当前和之前的版本号,这意味着当前版本和最新的版本之间的版本号不查看。

此时应该使用的指令:git reflog
在这里插入图片描述

修改git commit信息中的author

  1. 使用 --amend 修改 author:

    git commit --amend --author '用户名<邮箱@xxx.com>'

  2. 输入git rebase --continue结束修改

Github

github远程仓库的使用

获得远程仓库鉴权有基于两种协议方式:

  • HTTPS
  • SSH

基于HTTPS

  1. 再github上创建一个远程仓库

  2. 使用clone指令克隆线上仓库到本地

    git clone 线上仓库地址
    在这里插入图片描述

  3. 在仓库熵做对应的操作(提交暂存、提交本地仓库、提交到线上仓库、拉取线上仓库)

    提交到线上仓库

    提交到线上的指令:git push

    在首次往线上仓库提交内容时出现403的致命错误,原因是对远程仓库的修改需要鉴权。

    需要修改".git/config"文件内容:
    在这里插入图片描述
    在这里插入图片描述
    在修改好用户名和密码之后,再次尝试push指令,提交成功:
    在这里插入图片描述

    拉取线上仓库

    git pull

    提醒

    • 每天工作前用git pull拉取线上最新的版本
    • 每天下班后用git push,将本地代码提交到线上仓库

基于SSH协议(推荐)

在这里插入图片描述
具体步骤:

  1. 打开提示
    在这里插入图片描述

  2. 创建公私钥对文件

    安装OpenSSH

    ssh-keygen -t rsa -C "github注册邮箱"
    在这里插入图片描述

  3. 上传公钥文件内容(id_rsa.pub)
    然后打开github,标题任意填写即可
    在这里插入图片描述

    填写完毕保存即可,git会让你再次登陆,再次登陆之后可以看到
    在这里插入图片描述

  4. 执行后续的git操作,操作与先前基于HTTPS的方式一样。

    a. clone 线上仓库到本地git clone

    b. 修改文件后提交到缓存区

    c. git push

分支管理

保证多人开发时互不影响

分支细分

  1. 主分支(master):第一次向git仓库提交更新记录时自动产生的一个分支。
  2. 开发分支(develop):作为开发的分支,基于master分支创建。
  3. 功能分支(feature):作为开发具体功能的分支基于开发分支创建。

分支相关指令

查看分支:git branch  # 当前的分支前面有个类似*标识
创建分支:git branch 分支名
切换分支:git checkout 分支名
创建并切换新的分支:git checkout -b 分支名  # -b表示创建并切换
删除分支:git branch -d 分支名
合并分支:git merge 被合并的分支名

注意:

  • 比如说master分支要合并dev分支,在合并之前,先把dev分支所作的修改用commit提交,然后切换到master分支mergedev分支。此时继续可以选择删除dev分支,或者dev分支也合并master分支的内容如图所示。使用以下命令可以得到下图:

    git checkout bugFix
    git merge master
    

在这里插入图片描述

  • 在删除分支的时候,一定要先退出要删除的分支(比如可以切换到master分支删除其他分支),然后才能删除;

  • 合并所有分支之后,需要将master分支提交到线上远程仓库中。

冲突的产生与解决

给的例子是远程仓库和本地仓库不一致,本地仓库在修改前没有git pull,想要提交本地仓库的修改时发生冲突

解决方法:

  1. git pull
  2. 对文件保留要做的修改,然后重新提交

Git实用技能

图形管理工具

  1. Github for Desktop
  2. sourse tree
  3. TortoiseGit

忽略文件

在这里插入图片描述

touch .gitignore  # 创建.gitignore文件
常见规则写法有如下几种:
/mtk/  # 过滤整个文件夹
*.zip  # 过滤所有.zip文件
/mtk/do.c  # 过滤某个具体文件do.c 
!index.php  # 不过滤具体某个文件index.php
在这个文件中,以#开头的都是注释。

在这里插入图片描述

补充(不是课程视频中的内容,有些不一样)

推送到远程仓库

  1. git push 远程仓库地址 分支名称

  2. git push 远程仓库地址别名 分支名称

  3. git push -u 远程仓库地址别名 分支名称

    -u 记住推送地址和分支,下次只需要输入git push

  4. git remote add 远程仓库地址别名 远程仓库地址

  5. 删除别名:git remote remove 远程仓库地址别名

  6. 第一次提交需要用户名和密码,电脑会记住密码在凭据管理器,第二次就不用了。

拉取远程仓库中最新版本

  • 拉取远程仓库最新版本到本地:git pull 远程仓库地址 分支名称

跨团队协作

  1. fork到自己的远程仓库
  2. clone到本地进行修改
  3. push到远程仓库
  4. pull request发送给原作者
  5. 原作者查看commit 审核
  6. 原作者 merge pull request

SSH免密登录(有些和之前不一样)

  1. 生成密钥:ssh-keygen

    密匙储存目录:C:\User\用户\\.ssh

    公钥名称:id_rsa.pub

    私钥名称:id_rsa

  2. Github添加公钥
    在这里插入图片描述

  3. 复制SSH地址:
    在这里插入图片描述

  4. 设置ssh别名:$ git remote add origin_ssh SSH地址

  5. 远程推送:$ git push origin_ssh master

暂时保存更改

git中可以不提交更改,只提取分支上所有改动并储存,让开发人员得到一个干净的副本,临时转向其它工作。复制到“剪切板”,可以“粘贴“到其它分支。

场景:

  • 储存临时改动:git stash
  • 恢复临时改动:git stash pop
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!