文章目录
好久没有写博客了,来水一篇。学习视频是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你是谁:
-
配置姓名
$ git config --global "user.name xxxx" -
配置邮箱
$ git config --global "user.email xxxx@xxxx.com" -
查看配置是否成功
$ git config --list
注意:
- 更改–>重复上述命令
- 也可直接修改
C:\Users\用户\.gitconfig - 创建本地仓库应该注意的事项:

提交步骤
git init初始化git仓库git status查看文件状态git add文件列表 追踪文件
git commit -m 提交信息向仓库提交代码git log查看提交记录
版本回退

git回退到过去版本号后,git log只能查看当前和之前的版本号,这意味着当前版本和最新的版本之间的版本号不查看。
此时应该使用的指令:git reflog
修改git commit信息中的author
-
使用 --amend 修改 author:
git commit --amend --author '用户名<邮箱@xxx.com>' -
输入
git rebase --continue结束修改
Github
github远程仓库的使用
获得远程仓库鉴权有基于两种协议方式:
- HTTPS
- SSH
基于HTTPS
-
再github上创建一个远程仓库
-
使用clone指令克隆线上仓库到本地
git clone 线上仓库地址
-
在仓库熵做对应的操作(提交暂存、提交本地仓库、提交到线上仓库、拉取线上仓库)
提交到线上仓库
提交到线上的指令:
git push在首次往线上仓库提交内容时出现403的致命错误,原因是对远程仓库的修改需要鉴权。
需要修改".git/config"文件内容:


在修改好用户名和密码之后,再次尝试push指令,提交成功:
拉取线上仓库
git pull提醒:
- 每天工作前用
git pull拉取线上最新的版本 - 每天下班后用
git push,将本地代码提交到线上仓库
- 每天工作前用
基于SSH协议(推荐)

具体步骤:
-
打开提示

-
创建公私钥对文件
安装OpenSSH
ssh-keygen -t rsa -C "github注册邮箱"
-
上传公钥文件内容(id_rsa.pub)
然后打开github,标题任意填写即可
填写完毕保存即可,git会让你再次登陆,再次登陆之后可以看到

-
执行后续的git操作,操作与先前基于HTTPS的方式一样。
a. clone 线上仓库到本地
git cloneb. 修改文件后提交到缓存区
c.
git push
分支管理
保证多人开发时互不影响
分支细分
- 主分支(master):第一次向git仓库提交更新记录时自动产生的一个分支。
- 开发分支(develop):作为开发的分支,基于master分支创建。
- 功能分支(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,想要提交本地仓库的修改时发生冲突
解决方法:
- 先
git pull - 对文件保留要做的修改,然后重新提交
Git实用技能
图形管理工具
- Github for Desktop
- sourse tree
- TortoiseGit
忽略文件

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

补充(不是课程视频中的内容,有些不一样)
推送到远程仓库
-
git push 远程仓库地址 分支名称 -
git push 远程仓库地址别名 分支名称 -
git push -u 远程仓库地址别名 分支名称-u记住推送地址和分支,下次只需要输入git push -
git remote add 远程仓库地址别名 远程仓库地址 -
删除别名:
git remote remove 远程仓库地址别名 -
第一次提交需要用户名和密码,电脑会记住密码在凭据管理器,第二次就不用了。
拉取远程仓库中最新版本
- 拉取远程仓库最新版本到本地:
git pull 远程仓库地址 分支名称
跨团队协作
fork到自己的远程仓库clone到本地进行修改push到远程仓库pull request发送给原作者- 原作者查看
commit审核 - 原作者
merge pull request
SSH免密登录(有些和之前不一样)
-
生成密钥:
ssh-keygen密匙储存目录:
C:\User\用户\\.ssh公钥名称:
id_rsa.pub私钥名称:
id_rsa -
Github添加公钥

-
复制SSH地址:

-
设置ssh别名:
$ git remote add origin_ssh SSH地址 -
远程推送:
$ git push origin_ssh master
暂时保存更改
git中可以不提交更改,只提取分支上所有改动并储存,让开发人员得到一个干净的副本,临时转向其它工作。复制到“剪切板”,可以“粘贴“到其它分支。
场景:
- 储存临时改动:
git stash - 恢复临时改动:
git stash pop
来源:CSDN
作者:brayo
链接:https://blog.csdn.net/brayo/article/details/103462630











