本文已参与掘金创作者训练营第三期「话题写作」赛道,详情查看:掘力计划|创作者训练营第三期正在进行,「写」出个人影响力
一、 理解: 什么是 git
git:是一款开源免费的 分布式**版本管理**工具, 帮助我们进行文档/ 代码/ 项目版本等的管理
Git 是分布式版本控制系统, 就是将同一个 Git 仓库(可以连接到远程仓库), 这样就可以在不同的电脑上进行拉取(代码), 提交(代码)版本等编辑操作。
一台电脑 既可以是客户端, 也可以是服务器端, 工作过程中, 可以断开网络
比如需要几个同事一起合作共同编辑一个文件, 如果全靠人工的话, 就需要保留多个时间点、每个人的版本, 以便之后查看和修改。然后还要整理出包含每个改动的最终版, 这个最终版只要有人改动, 就得找到那个改动的地方, 然后更新。总之, 整个过程是非常麻烦, 非常耗费时间和人力的。
由此需要, 产生了版本管理系统, 它可以自动帮我们记录每次文件的改动, 还可以让同事协作编辑, 也不用自己管理一堆类似的文件, 也不需要把文件通过数据线等传来传去, 只需要本地使用命令或者可视化操作即可。
二、 git 使用:
1、 安装
1.1 下载 git
官网安装教程: git-scm.com/downloads,
下载后 在window 系统下,一直点击下一步就可以了(也可以选择安装目录 安装到其他盘)。
然后在项目文件夹 或桌面 单机鼠标右键 可以看到 git bash here 就可以打开命令行了, 这里没有安装可视化操作界面 git GUI here
1.2 配置账户
在安装完成之后, 为 git 配置账户信息, 用于提交版本库到远程("托管的网上")
$ git config --global user.name "YourName"
$ git config --global user.email "your-email@youremail.com"
# 把 YourName 改成自己的用户名;
# 把 your-email@youremail.com 改成自己邮箱的格式。
2、使用步骤: 创建项目
创建一个项目目录 git-demo
mkdir git-demo
3、检出 git 的项目仓库
- 命令 ----
git init
查看仓库状态: 当前被 git 管理的文件
git status
4、本地项目文件夹新增的文件
首先要进行 添加 操作, 添加到 本地的项目仓库下 , 命令 --- git add 文件全称
将全部文件添加到 git 项目中 :
git add .
# 或
git add --all
忽略部分文件 配置 .gitignore
如果添加的过程中想忽略某个或某些文件不被 git 管理 , 需要在项目中创建一个 .gitignore 文件 , 把忽略的 文件全称或文件夹 写入到 该文件中即可。
创建一个 .gitignore 文件, 把需要忽略的文件或文件夹写入并保存
touch .gitignore
vi .gitignore # 编辑 把需要忽略的文件或文件夹写入并保存
5、提交到本地仓库
添加好后的文件, 需要提交到 git 的服务器上
git commit -m "日志" 日志必填
6、修改文件后的 操作
添加好的文件 如果被修改, 先 做 add 操作, 再 commit 操作
git add . # git add -A
git commit -m 'logger'
7、查看日志信息
git log
8、回退到某个版本 :
git reset --hard "日志列表前六位值"
9、分支操作
- 查看分支 :
git branch - 创建分支:
git branch 分支名称 - 切换分支 :
git checkout 分支名称 - 创建并切换到某个分支 (合并上面两个操作):
git checkout -b 分支名称 - 在 master 上合并分支 : git merge 分支名 (切换到 master 分支上)
git branch -d onebranch # 删除 master 下的分支
远程仓库
github 托管仓库(代码等)的平台, 类似还有: gitee国内稳定 / gitlab 公司用的多
git 的服务提供商 通过 GitHub 可以上传项目 项目可以通过 github 来管理
克隆 github 上的项目到本地文件夹:
git clone https://github.com/xn213/pro.git
本地操作项目修改后, 将修改的新项目重新推送到远端 github : git push -v origin master
如果在 github 的线上做项目的修改, 线下同步:
-
- 重新克隆
git clone
- 重新克隆
-
- 在当前的项目目录下, 使用命令:
git pull origin master
- 在当前的项目目录下, 使用命令:
小结 :
线下 克隆 github 项目
git clone 项目的地址url
线下修改项目 , 将修改后的项目 推送到 github 上
git push -v origin master
如果在线上修改项目 , 同步到线下 , 可以重新克隆 , 也可以 在该目录下 git pull origin master
总结一些 git 高效 使用技巧
- 暂存区移除
index.html, 不会删除源文件
git rm --cached index.html
- 误操作导致分支不见了, 如何恢复? (不小心删除了分支)
git reflog ## 时光机 找到对应的 hash
git reset ..
- 干净的工作空间! 工作到一半 临时插需求, 太乱了?
git stash push [-u | --include-untracked]
- 从 git 历史中删除一个文件: 比如不需要版本控制的超大文件资源...
# 谨慎使用
git filter-branch --tree-filter 'rm -rf bigfile.file' HEAD
- 修改上次提交 commit
git commit --amend
-
git rebase -i origin/master -
git bisect 二分法 查找导致问题的节点