目录
Linux 基本命令
Git 的文件管理机制
版本控制器
Git
Git 使用
比较文件差异
过滤文件
后台项目提交到版本库
克隆
用本地仓库首次初始化远程仓库并提交代码
remote 源操作
多分支开发
解决合并分支后产生的冲突
Linux 基本命令
$ df -h 查看磁盘分区
$ pwd 返回当前位置所在的绝对路径
$ ~ 退回到家目录
$ ll .Git/ 在当前文件夹查看下一层文件夹. Git(隐藏文件夹)下的文件信息
$ ll 查看文件夹目录
$ ll |Less 查看文件夹目录
$ ls -lA 查看隐藏文件
$ ls -lA|Less 查看隐藏文件
$ cat .gitconfig 查看全局的隐藏文件
$ VIM good.txt 创建一个文件, 并可在该文件内编辑内容 i 进入编辑模式(可在文件内写内容)
esc 退出进入命令模式 :wq 保存斌退出 VIM :set nu 给文件内容设置行号 :set nonu 取消行号
$ touch 文件名 创建文件, 同 VIM
$ cat good.txt 查看文件内容
Git 的文件管理机制
'''
Git 把数据看作是小型文件系统的一组快照, 每次提交更新时 Git 都会对当前的全部文件制作一个快照并保存这个快照的索引. 为了高效, 如果文件没有修改, Git 不再重新存储该文件, 而是只保留一个连接指向之前存储的文件, 所以 Git 的工作方式可以称之为快照流;
'''
版本控制器
- """
- 完成 协同开发 项目, 帮助程序员整合代码
- 软件: 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 新建用户信息, 在所有仓库下都可以使用
查看全局用户签名:
cd ~ # 退到根目录
ls -lA|Less 查看. gitconfig 隐藏的文件
cat .gitconfig # 查看. gitconfig 中的内容
在仓库目录终端下 - 设置局部用户
>: Git config user.name '用户名'
-- 用户名
>: Git config user.email '用户邮箱'
-- 用户邮箱
注: 在当前仓库下的 config 新建用户信息, 只能在当前仓库下使用
注: 一个仓库有局部用户, 优先使用局部用户, 没有配置再找全局用户
查看用户名, 邮箱保存位置, 先进入仓库(文件夹):
$ cat .Git/config
查看仓库状态
- # 当仓库中有文件增加, 删除, 修改, 都可以在仓库状态中查看
- >: Git status
-- 查看仓库状态
>: Git status -s
-- 查看仓库状态的简约显示
工作区操作
- # 通过任何方式完成的文件删与改
- # 空文件夹不会被 Git 记录
撤销工作区操作: 改, 删
"""
>: git checkout .
-- 撤销所有暂存区的提交
>: git checkout 文件名
-- 撤销某一文件的暂存区提交
"""
工作区内容提交到暂存区
"""
>: git add .
-- 添加项目中所有文件
>: git add 文件名
-- 添加指定文件
"""
撤销暂存区提交: add 的逆运算
"""
方式 1:
$ git rm --cached good.txt
方式 2:
>: git reset HEAD .
-- 撤销所有暂存区的提交
>: git reset 文件名
-- 撤销某一文件的暂存区提交
"""
提交暂存区内容到版本库
- # Git commit -m "版本描述信息" 文件名
- eg:$ Git commit -m 'my second commit -modify good.txt' good.txt
撤销版本库提交: commit 的逆运算
"""
回滚暂存区已经提交到版本库的操作:
查看历史版本:
>: git log
>: git reflog 指针[email protected]{移动到当前版本的步数}
>:$ git log --pretty=oneline 将历史版本信息单行显示(简洁版), 显示所有版本信息
>:$ git log --oneline 单行显示比当前版本更低的版本, commit 对应的 hash 值只部分显示
查看时间点之前 | 之后的日志:
>: 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
恢复到指针当前指向的版本位置:
>:$ git reset --hard HEAD # 执行 $ rm apple.txt 操作, 文件此时在暂存区, 执行前面的操作可以恢复当前文件
"""
log 日志信息过多, 需要多屏展示, 展示方式如下:
? 空格向下翻页
? b 向上翻页
? q 退出
reset 命令的三个参数对比:
--soft 参数
仅仅在本地库移动 HEAD 指针
eg:$ Git reset --soft ec666cc 查看版本库状态为绿色
原因: 会把暂存区凸显出来
--mixed 参数
在本地库移动 HEAD 指针
重置暂存区
$ Git reset --mixed 7c8d13a 查看版本库状态为红色
原因: 本地库跟暂存区改变了位置, 所以工作区被凸显, 工作区还在原地, 文件在工作区的状态还是红色,
--hard 参数
在本地库移动 HEAD 指针
重置暂存区
重置工作区
比较文件差异
Git diff[文件名]
将工作区中的文件和暂存区进行比较
eg:$ Git diff apple.txt 会显示出两者内容的差异(Git 默认是以行内容区分两者差异的)
#=================================
提交到缓存区之后, 再次比较就没差异了
- $ Git add apple.txt
- $ Git diff apple.txt
- # ===============================
Git diff [本地库中的历史版本] [文件名]
eg:$ Git diff HEAD apple.txt # 也会显示差异
将工作区中的文件和本地库历史记录比较
不带文件名比较多个文件
eg:$ Git diff HEAD
过滤文件
- # .gitignore 文件
- # 1)在仓库根目录下创建该文件
- # 2)文件与文件夹均可以被过滤
- # 3)文件过滤语法
- """ 过滤文件内容
- 文件或文件夹名: 代表所有目录下的同名文件或文件夹都被过滤
- / 文件或文件夹名: 代表仓库根目录下的文件或文件夹被过滤
- eg:
- a.txt: 项目中所有 a.txt 文件和文件夹都会被过滤
- /a.txt: 项目中只有根目录下 a.txt 文件和文件夹会被过滤
- /b/a.txt: 项目中只有根目录下的 b 文件夹下的 a.txt 文件和文件夹会被过滤
- *x*: 名字中有一个 x 的都会被过滤(* 代表 0~n 个任意字符)
- 空文件夹不会被提交, 空包会被提交 空包下有__init__.py 文件, 是导包的初始化文件
- """
注意: 前台和后台的根目录下都会有一个. gitigenore 过滤文件, 把一些不需要上传到版本库中的文件及包过滤掉, 过滤条件一定要在第一次提交版本库之前完成. 后台要手动创建:
- # .gitignore 文件内应该过滤的文件, 比如以下:
- # 过滤条件一定要在第一次提交版本库之前完成
- # 各类编辑器产生的配置文件
- .idea
- .vscode
- *.suo
- *.ntvs*
- *.njsproj
- *.sln
- *.sw?
- # 日志文件
- .log
- *.logger
- # 本地测试文件
- scripts
- # 导包缓存文件
- *.pyc
- __pycache__
后台项目提交到版本库
后台项目提交到版本库两种方式:
1. 直接在 Git Bash Here 进入到后台项目文件夹
$ cd G:/Python 代码日常 / day1/day1_proj
2. 在改文件夹下初始化仓库
$ Git init # 初始化完毕之后 pycharm 里所有的后台文件都变成红色了, 因为此时所有文件都在工作区
3.$ Git add . 将所有文件提交到暂存区 # 此时 pycharm 所有文件变成绿色
- 4.1(使用 Git 命令行提交):
- Git commit -m
- 4.2(直接在 pycharm 中提交):
此时 pycharm 已经有了 Git 环境, 在项目的根目录文件夹右键, 选择 "git"-->"Commit Directory-->添加 comments-->点击下方 commit 按钮"
- >: Git config --global user.name "doctor_owen"
- >: Git config --global user.email "[email protected]"
- >: Git remote add origin https://gitee.com/doctor_owen/luffy.git # 配置远程源
- >: Git push -u origin master # 提交本地仓库到远程源
- >: Git remote add origin [email protected]:doctor_owen/luffy.Git # 配置远程源
- >: Git push -u origin master # 提交本地仓库到远程源
- >: Git remote
- >: Git remote -v
- >>>>>>>>>>header
- ===========
- <<<<<<<<<<1321adsa21
来源: http://www.bubuko.com/infodetail-3386700.html