目录
版本控制器
Git
简介
Git 与 SVN 比较
Git 的工作流程
Git 分支管理
Git 使用
安装
基础命令
将已有的文件夹 - 初始化为 Git 仓库
在指定目录下 - 初始化 Git 仓库
在仓库目录终端下 - 设置全局用户
在仓库目录终端下 - 设置局部用户
查看仓库状态
工作区操作
撤销工作区操作: 改, 删
工作区内容提交到暂存区
撤销暂存区提交: add 的逆运算
提交暂存区内容到版本库
撤销版本库提交: commit 的逆运算
过滤文件
提交后如何删除自己的文件
创建远程 gitee 仓库
选择线上仓库
用本地仓库首次初始化远程仓库
本地仓库与远程仓库建立源连接
创建电脑的公钥私钥
全局公钥
配置项目公钥
提交本地代码到远程仓库
remote 源操作
多分支开发
分支操作
线上分支合并
团队开发和冲突解决
解决冲突
pycharm 操作 Git
资源与资料下载
我的码云: gitee https://gitee.com/SkyOceanchen
我的 GitHub https://github.com/SkyOceanchen/
比较好的 GitHub 上的项目
知乎 1https://www.zhihu.com/topic/19566035/hot https://www.zhihu.com/topic/19566035/hot
知乎 2https://www.zhihu.com/topic/19607465/hot https://www.zhihu.com/topic/19607465/hot
经典的爬虫项目 https://www.zhihu.com/question/58151047/answer/859783454
更多 GitHub 项目 1 https://www.zhihu.com/topic/19566035/hot
更多 Git 项目 2 https://www.zhihu.com/topic/19607465/hot
经典的爬虫项目
版本控制器
- """
- 完成 协同开发 项目, 帮助程序员整合代码
- 软件: SVN , GIT
- git: 集群化, 多分支
- """
- Git
简介
"""
什么是 git: 版本控制器 - 控制的对象是开发的项目代码
代码开发时间轴: 需求 1> 版本库 1> 需求 2> 版本库 2> 版本库 1> 版本库 2
"""
Git 与 SVN 比较
Git 的工作流程
Git 分支管理
Git 使用
安装
- # 1. 下载对应版本: https://git-scm.com/download
- # 2. 安装 Git: 在选取安装路径的下一步选取 Use a TrueType font in all console Windows 选项
基础命令
将已有的文件夹 - 初始化为 Git 仓库
"""
>: cd 目标文件夹内部
>: git init
"""
在指定目录下 - 初始化 Git 仓库
"""
>: cd 目标目录
>: git init 仓库名
"""
在仓库目录终端下 - 设置全局用户
""">: git config --global user.name'用户名'>: git config --global user.email'用户邮箱'
注: 在全局文件 C:\Users \ 用户文件夹 \.gitconfig 新建用户信息, 在所有仓库下都可以使用
"""
在仓库目录终端下 - 设置局部用户
""">: git config user.name'用户名'
-- 用户名
>: git config user.email '用户邮箱'
-- 用户邮箱
注: 在当前仓库下的 config 新建用户信息, 只能在当前仓库下使用
注: 一个仓库有局部用户, 优先使用局部用户, 没有配置再找全局用户
"""
查看仓库状态
"""
# 当仓库中有文件增加, 删除, 修改, 都可以在仓库状态中查看
>: git status
-- 查看仓库状态
>: git status -s
-- 查看仓库状态的简约显示
"""
工作区操作
- # 通过任何方式完成的文件删与改
- # 空文件夹不会被 Git 记录
撤销工作区操作: 改, 删
"""
>: git checkout .
-- 撤销所有暂存区的提交
>: git checkout 文件名
-- 撤销某一文件的暂存区提交
"""
工作区内容提交到暂存区
"""
>: git add .
-- 添加项目中所有文件
>: git add 文件名
-- 添加指定文件
"""
撤销暂存区提交: add 的逆运算
"""
>: git reset HEAD .
-- 撤销所有暂存区的提交
>: git reset 文件名
-- 撤销某一文件的暂存区提交
"""
提交暂存区内容到版本库
# Git commit -m "版本描述信息"
撤销版本库提交: commit 的逆运算
"""
回滚暂存区已经提交到版本库的操作:
查看历史版本:
>: git log
>: git reflog
查看时间点之前 | 之后的日志:
>: git log --after 2018-6-1
>: git log --before 2018-6-1
>: git reflog --after 2018-6-1
>: git reflog --before 2018-6-1
查看指定开发者日志
>: git log --author author_name
>: git reflog --author author_name
回滚到指定版本:
回滚到上一个版本:
>: git reset --hard HEAD^
>: git reset --hard HEAD~
回滚到上三个版本:
>: git reset --hard HEAD^^^
>: git reset --hard HEAD~3
回滚到指定版本号的版本:
>: git reset --hard 版本号
>: eg: git reset --hard 35cb292
"""
过滤文件
- # .gitignore 文件
- # 1)在仓库根目录下创建该文件
- # 2)文件与文件夹均可以被过滤
- # 3)文件过滤语法
- """ 过滤文件内容
- 文件或文件夹名: 代表所有目录下的同名文件或文件夹都被过滤
- / 文件或文件夹名: 代表仓库根目录下的文件或文件夹被过滤
- eg:
- a.txt: 项目中所有 a.txt 文件和文件夹都会被过滤
- /a.txt: 项目中只有根目录下 a.txt 文件和文件夹会被过滤
- /b/a.txt: 项目中只有根目录下的 b 文件夹下的 a.txt 文件和文件夹会被过滤
- *x*: 名字中有一个 x 的都会被过滤(* 代表 0~n 个任意字符)
- 空文件夹不会被提交, 空包会被提交
- """
提交后如何删除自己的文件
直接在自己的文件夹中进行删除, 然后执行下面的命令
创建远程 gitee 仓库
选择线上仓库
"""
1. 注册码云账号并登录: https://gitee.com/
2. 创建仓库
3. 本地与服务器仓库建立连接
""""""
1)本地配置线上的账号与邮箱
>: git config --global user.name "doctor_owen"
>: git config --global user.email "[email protected]"
这里是局部配置
>: git config user.name "doctor_owen"
>: git config user.email
2)在本地初始化仓库(git init), 并完成项目的初步搭建(项目架构)(一般都是项目负责人完成项目启动)
# 这个过程就是 git 的基础部分的本地操作
3)采用 https 协议 或 ssh 协议 与远程 git 仓库通信提交提交代码(一般都是项目负责人完成)
i) https 协议方式, 无需配置, 但是每次提交都有验证管理员账号密码
>: git remote add origin https://gitee.com/doctor_owen/luffy.git # 配置远程源
>: git push -u origin master # 提交本地仓库到远程源
ii) ssh 协议, 需要配置, 配置完成之后就可以正常提交代码
>: git remote add origin [email protected]:doctor_owen/luffy.git # 配置远程源
>: git push -u origin master # 提交本地仓库到远程源
iii)查看源及源链接信息
>: git remote
>: git remote -v
iv)删除源链接
>: git remote remove 源名字
注: origin 远程源的源名, 可以自定义; master 是分支名, 是默认的主分支
"""
用本地仓库首次初始化远程仓库
本地仓库与远程仓库建立源连接
前提: 本地仓库已经创建且初始化完毕(代码已经提交到本地版本库)
本机命令, 添加远程源: Git remote add origin [email protected]*.Git
采用 SSH 协议的 remote 源
创建电脑的公钥私钥
添加公钥教程: https://gitee.com/help/articles/4181#article-header0
官网:
本机命令, 生成公钥: SSH-keygen -t rsa -C "*@*.com"
邮箱可以任意填写
本机命令, 查看公钥: cat ~/.SSH/id_rsa.pub
码云线上添加公钥: 项目仓库 => 管理 => 部署公钥管理 => 添加公钥 => 添加个人公钥
全局公钥
在这里添加自己的公钥, 然后在自己每一个项目都可以使用, 并且不需要重复添加
配置项目公钥
将自己的的公钥直接配置给一个项目, 这样在这个项目中可以使用,
在别的项目中不能使用
如果想使用的话可以在别的项目下, 进行激活添加, 不能重复部署一个公钥, 这样会出现冲突.
提交本地代码到远程仓库
在一次拉取和提交
拉取代码: Git pull origin master
命令: Git push origin master
remote 源操作
主要是记录仓库的状态
"""
1)查看仓库已配置的远程源
>: git remote
>: git remote -v
2)查看 remote 命令帮助文档
>: git remote -h
3)删除远程源
>: git remote remove 源名
eg: git remote remove origin
4)添加远程源
>: git remote add 源名 源地址
>: git remote add orgin [email protected]*.git
"""
多分支开发
分支操作
在团队操作的时候一般的情况都是创建分支 dev,proj
dev 分支是开发的分支
proj 是对客户展示的分支
一般情况下我们都是在 dev 分支进行开发, 在 dev 分支上进行拉取项目
如果我们开发的时候需要自己在 dev 分支上创建新的分支, 新的分支上会又 dev 分支上所有的内容, 在我们新的分支下进行开发和测试, 如果测试通过后, 可以将分支与 dev 分支进行合并, 然后进行删除分支操作
随后将分支 dev 进行上传步骤
如果上传无错误的情况下, 由操作者, 将 master 分支和 dev 分支进行合并.
"""
1. 创建分支
>: git branch 分支名
2. 查看分支
>: git branch
3. 切换分支
>: git checkout 分支名
4. 创建并切换到分支
>: git checkout -b 分支名
5. 删除分支
>: git branch -d 分支名
git branch -d develop
git branch -D develop (强制删除)
6. 查看远程分支
>: git branch -a
7. 合并分支: 合并自己下面的冲突, 需要在自己这个分支上, 进行合并下一个分支, 合并到自己上
>: git merge 分支名
8. 把 develop 分支推送到远程仓库 **
git push origin develop
如果你远程的分支想取名叫 develop2 , 那执行以下代码:
git push origin develop:develop2
一般不使用
"""
线上分支合并
团队开发和冲突解决
首先自己要先配置好在自己的密钥, 然后将收到的邀请进行同意后, 可以创建自己的文件, 然后进行拉取线上文件
或者给出自己的公钥, 获取仓库地址
每次提交前都要拉取, 这样可以确定线上是不是被更新过, 确定自己是最新的版本
Git init
Git pull 仓库
修改文件, 添加功能
- Git add .
- Git commit -m "提交信息"
Git push 仓库
Git push origin master
如果成功, 就上传成功
如果不成功, 可以从新拉取 进行比对
Git pull origin master 这个是拉取命令
重复操作, Git push origin master 提交命令
解决冲突
出现冲突后, 大部分的解决方案是从新拉取, 在文件中进行查看冲突的不部分
然和和源码开发者进行商议, 然后进行修改, 确定修改的内容
直接删除的方法不可取
如果产生冲突, 在提交自己的版本后, 进行拉取的时候, 可能会删除自己的文件, 下面保存自己的文件
Git push origin master
Git log 查看版本
Git reset head HEAD^ 回归到上一个版本
Git reset head 版本号 去向某一个版本
选择需要的文件, 进行创建文件保存
在切换版本, 将文件添加进去, 在进行提交
产生冲突后: q 退出, 然后在文件中查看冲突的文件, 并且进行修改(和提交代码的的人进行商议修改)
pycharm 操作 Git
首先要在项目中进行初始化
Git init
pycharm 会自动提交
也可以手动选择提交
资源与资料下载
Git 更详细的教程
权威 Git 书籍 ProGit(中文版) https://git.oschina.net/progit/
Git 官网: http://git-scm.com https://git-scm.com/
Git 手册: Git 手册 https://git-scm.com/docs
网友整理的 [email protected] 教程, 请 点击这里;
一份很好的 Git 入门教程, 请 点击这里;
Git 图解教程: http://www.cnblogs.com/yaozhongxiao/p/3811130.html)
资料链接: https://pan.baidu.com/s/1c20DVOW 密码: p9ri
Git 教程下载_王亮(大神):https://pan.baidu.com/s/1qYlw2YS https://pan.baidu.com/s/1qYlw2YS
来源: http://www.bubuko.com/infodetail-3351607.html