git
基本配置
1.设置用户名和邮箱
$ git condig --global user.name “Your Name”
$ git config --global user.email “Your Email”
2.查看用户名和邮箱
$ git config user.email
$ git config user.name
git/Linux的常见命令
1.创建文件夹
$ mkdir xxx
$ cd xxx 进入xxx文件
$ vi x.txt(新建/编辑文件)
i 进入编辑模式
ESC :wq 保存并退出
ESC:q! 不保存并退出
cd … cd…/进入上一层文件夹
ls 列出当前文件夹中的所有文件
pwd 显示当前目录
cat x.txt 显示文件内容
clear 清屏
工作区+版本区+暂存区
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dzWYMhoF-1604143150598)(C:\Users\jry\AppData\Roaming\Typora\typora-user-images\image-20201029131906701.png)]
**工作区:**项目文件夹,进行:增删改查的区域
**暂存区:**暂时保存,将给git进行版本管理
**版本区:**被git控制的
- 第一步:git add xxx 把xxx文件添加进缓存区
- 第二步:git commit 把暂存区的所有内容提交到当前版本库
查看文件有没有添加成功
git status
红色表示在工作区。
**绿色**表示在**暂存区。**
没有任何显示代表所有文件位于版本区。
初始化版本库: git init
- 成功:Initialized empty Git repository in C:/Users/jry/Desktop/demo/.git/
- 目录会多出一个.git文件夹(不要修改)
git add xxx 把xxx文件添加进缓存区
error⚠️ LF will be replaced by CRLF in a.txt.
The file will have its original line endings in your working directory
处理命令:git config --global core.autocrlf false
git 差异对比
把所有文件加到暂存区
git add *
git add .
暂存区到版本区
git diff :暂存区和工作区
a/— a暂存区 b/+++ b工作区
git diff --cached : 比较版本区与暂存区
git diff master : 比较版本区与工作区
日志+版本号
git log 显示从最近到最远的所有提交日志
git reflog 显示每次提交(commit)的commit id
版本回退+版本穿梭+版本撤销
git reset --hard HEAD^ 版本回退(回退一次提交)
git reset --hard Obfafd 回退到指定Obfafd的commit id版本
git reset HEAD 用版本库中的文件去替换暂存区的全部文件。
git checkout – x.txt 用暂存区指定文件去替换工作区的指定文件(危险)
git checkout HEAD x.txt 用版本库中的文件替换暂存区和工作区的文件(危险)
git rm --cached x.txt 从暂存区删除文件
删除文件
git rm x.txt 删除文件
git rm -r xxxx 删除文件夹
git完整图示
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pKJMpbcE-1604143150600)(C:\Users\jry\AppData\Roaming\Typora\typora-user-images\image-20201029135917644.png)]
分支
概念
1.主分支:master---------------------------代码经过了开发人员单元测试,已经测试人员详细的一套测试通过之后,确定没问题
2.开发分支:dev-----------------------------开发人员所有代码提交到此分支
3.测试分支:test-----------------------------测试人员(由开发人员完成单元测试的代码放入此分支)
4.里程碑分支:tags--------------------------v1.0.0(完整的)
v1.0.0
第一位:大版本号
第二位:中小版本
第三位:bug
测试种类:回归测试,压力测试,性能测试,单元测试
git checkout -b dev 创建dev分支,并切换到dev分支
git branch 查看当前分支
git checkout master 切换分支
git merge dev 合并dev分支到当前分支
git branch -d dev 删除指定分支
git diff branch1 branch2 显示出两个分支之间所有有差异的文件的详细差异
git diff branch1 branch2 --stat 显示出两个分支之间所有有差异的文件列表
git diff branch1 branch2 xxx 显示指定文件的详细差异
github
用户名JRY-2020
本地库与远程库交互
1. 场景一(关联):本地有仓库,要和远程仓库做关联
-
git init
-
git add .
-
git commit -m “first commit”
-
在GitHub上创建一个远程仓库
-
git remote add origin https://github.com/xpromise/oa.git (HTTPS)
备注:如果此步关联错了,解决办法如下。
暴力解决:删除.git文件夹,重新建立本地仓库。
优雅解决:git remote remove origin,再在重新关联仓库。
2.场景二(推送):本地有仓库有内容,要推送给远程库
-
git push -u origin master (首次加-u)
-
根据提示输入用户名密码
-
我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送到远程新的master分支,还会把本地master分支和远程的master分支关联起来,在以后的推送时可以简化命令git push origin master。
-
备注:正常情况下,成功推送一次后,电脑会记住和账号与密码,下次推送时不会再提示输入。若在电脑不能够自动记住github的账户和密码,需执行以下命令解决:git config --global credential.helper store
3. 场景三(拉取):本地有仓库有内容,获取远程库新内容
- 第一种拉取方式:git pull origin master
将远程仓库的master分支上代码版本复制/合并到本地master分支上
- 第二种拉取方式:git fetch origin master:tmp
新建一个tmp分支,将远程仓库的master分支上代码版本复制到tmp分支上,不会自动合并。
4. 场景四(克隆):本地无仓库,要获取一个完整的远程库
- 备注:只在第一次获取远程库时才需要克隆
git clone https://github.com/xxx.git (HTTPS)
https://jry-2020.github.io/jryblog/
Jekyll 更优秀的静态生成页面
提交代码的规范
- 每次提交之前,先更新,再提交
- 敏感时间点,一定及时更新文件
- 多提交,避免“只关注写代码,不关注提交”
- 每次提交之前必须书写清晰明了的提交说明
- 不要提交不能通过编译的代码
- 不要提交自己不明白的代码
- 慎用锁定功能
- 不要提交本地自动生成的文件、文件夹
git总结
1.git 三区(init add commit)
2.版本回退
3.分支(创建,切换,管理,常见的分支)
4.git与github的交互:
1.本地有仓库有内容,远程库为空,将代码推送给远程库(关联,推送)
2.本地仓库,要获取到远程库新增修改的内容(拉取)
3.本地没有仓库和内容,获取到一个完整的远程库(克隆)
4.带有分支的上述操作
5.GitHub:新建仓库,新建组织,开源项目的多人协作(fork,pull),公司项目的多人协作
版本管理:git仓库地址,svn:用户名,密码。git:克隆,本地管理好,推送
常用命令总结
一、常用命令:
- mkdir XX:创建一个空目录 XX指目录名
- pwd:显示当前目录的路径
- cat xx:查看xx文件内容
- git init:把当前的目录变成可以管理的git仓库,生成隐藏的.git文件夹
- git add xx:把xx文件添加到暂存区
- git commit -m “xx”:提交文件 -m后面的是注释,必须写!
- git status:查看仓库状态
- git log:查看历史记录
- git reset --hard HEAD^:往上回退一个版本
- git reflog:查看历史记录的版本号id
- git checkout – xx:把xx文件在工作区的修改全部撤销
- git rm xx:删除xx文件
- git remote add origin https://github.com/xxxxx/a.git 关联一个远程库
- git push -u(第一次尽量加上-u,以后不用)origin master:把当前master分支推送到远程库
- git clone https://github.com/xxxxx 从远程库中克隆
- git checkout -b dev:创建dev分支 并切换到dev分支上
- git branch:查看当前所有的分支
- git checkout master:切换回master分支
- git merge dev:在当前分支合并dev分支
- git branch -d dev:删除dev分支
- git branch xxx:创建分支xxx
- git remote:查看远程库信息
- git remote -v查看远程库的详细信息
- git pull origin master 将远程库的更新拉取到本地并自动合并
- git push origin master:git会把master分支推送到远程库对应的分支上