git 实现的功能
创建存盘点,保存不同版本数据
多任务多模块利用创建分支开发项目
实现多人协同开发项目, 利用共享仓库实现
1.下载安装及配置
- 官方下载地址
- 直接下一步安装git后面自行改动,不改动直接下一步
- 安装结束 win+r 打开cmd窗口运行,git --version 查看版本正常查看证明安装成功
- 右键项目找到 Git Bash Here 点击运行后会弹出一个类似于cmd形式的窗口这里就能运行git的命令。
- 如果有需要忽略上传的文件在 .gitignore 文件中写上后就可以 例如:文件 bak.css 或者 文件夹 /.idea
- git 管理文件的三种状态
- 已提交:committd -> git仓库,存储所有项目版本的地方
- 已修改:modified->工作目录,能看到的都是工作区域目录
- 已暂存:staged->暂存区, 暂时存放方便一起提交到仓库的地方
- 开始项目实操
-
git init
:初始化空间(普通目录初始化成git仓库) -
git config --global user.name
用户名
:填写用户名需要要提交信息才能提交。类似于入门证。而且一个电脑只需配置一次就可以, 重新填写配置就会覆盖以前信息。
-
git config --global user.email 邮箱地址@qq.com
:填写邮箱地址 -
git add 文件名
:存入暂存区 -
git status
查看仓库状态。modified
:被修改。
绿色
是暂存区文件 。
untarched files
未追踪的文件 -
git checkout 文件名
可以将暂存区内容还原到工作区6.1
git checkout -b name-of-new-branch 235c3147ce1a1056da265b2b3d71450b3e30b7f1
检出某个版本到工作区,切换版本到某个分支直接显示到当前工作区
, log 任何版本都存在 -
git reset –hard 版本号(提交id)
(git reset -hard commit(备注信息) )版本号就是版本字符串标识如示例, 版本回退,可以通过如下命令获取到版本号: git reflog 。 例如:git reset –hard e12928c
git reset --hard b07d5e4d8102f2c477d492d2564d7879e24de749
回退切换某个版本, 回退后log中会找不到最新的版本。不是切换是回退
-
接下来开始构建 git 项目
-
如果添加远程仓库错误使用
git remote rm origin
并且重新提交就可以了
-
2.操作分支和主线
想要创建新的分支必须
提交一次
才可以,因为默认master只显示不存在,只有提交之后才存在
, 分支具备继承
的功能
- 新建分支login
创建分支
git branch login
查看分支
git branch
删除分支 (切换到主支master,具体看下面命令操作)
git branch -d login
- 切换工作空间到login
checkout
会把所有以前操作修改更新的代码也放到仓库一份。好像我们机械的备份一样的工作方式
-这时就可以直接在你自己的空间编写你要的模块,在你没有合并主线之前这里的代码不会污染到主线
-如果你要保存分支的内容你要commit你的文件
git checkout login
存盘点在login 分支上
git commit -m '我所更新的内容'
- 切换工作空间到主线 master
当主支已经更新,本地的分支还是之前的版本新增其他内容主分支。被更改的内容就会出现合并冲突,处理方式很简单手动处理需要的代码并且提交一次。
下面红字是自动提交失败,请修复冲突在提交一次
-开发测试结束,合并分支到主线内容 git merge (你所要合并的分支模块名称)
git merge login
-开发测试结束,讲主支代码与当前分支部分合并, 处理掉分支中部分bug,合并到当前分支,当前分支的代码和master的代码就一样了 ,新增部分作为冲突提示出来。逻辑如下
git merge master
merge还可以修复bug.
- 提交到远程仓库
- 远程服务器安装git
- 连接进入远程仓库,比如xhell 登陆linux 或者直接登陆windows 系统的服务器(student用户登陆:
ssh student@服务器ip
,后面输入密码登陆进去) - 在远程仓库创建.git 后缀的目录 mkdir mytest.git (shell命令创建)
git init --bare
创建裸仓库 (仓库中创建很多git初始化文件就可以了)git push student@服务器ip: home/student/mytest.git (文件创建物理路径)
回车提交git pull student@服务器ip: home/student/mytest.git (文件创建物理路径)
其他成员只需要在本地就可以把拉取到当前文件夹
github 提交远程仓库
1. 登陆github
2. 第一次在github上创建项目空间 运行2.命令选择项目空间。把本地仓库更新到远程仓库中
3. 后期更新到远程仓库直接使用命令 git push 后续更新和分支更新
4. 分支更新直接切换分支空间后,合并不合并都可以更新到远程仓库中。
5. 远程克隆文件直接在所选项目空间中运行 git clone
1.
git init
git add README.md
git commit -m "first commit"
git remote add origin https://github.com/账号/项目.git
git push -u origin master
…or 2.
git remote add origin https://github.com/账号/项目.git
git push -u origin master
关联分支
分支查看 可以查看关联项 git branch -vv
关联当前本地分支与远程 同名分支 git branch --set-upstream-to=origin/<branch>
本地分支与远程分支关联 git branch --set-upstream-to=origin/<branch> <localbranch>
3.常用命令行操作
序号 | 使用命令 | 含义 |
---|---|---|
0 | git init | 初始化本地git仓库 |
1 | git add < file > \ -A | 添加文件(file文件名)(-A所有文件) |
2 | git status | 查看状态 |
3 | git log | 查看操作日志 |
4 | git commit | 提交 -m备注 单引号不允许空格,双引号可以 |
5 | git checkout | 切换分支和主线 |
6 | git reset | 回退到历史的某个版本 |
7 | git push | 推送到仓库 |
8 | git pull | 远程仓库拉取数据 |
9 | git clone < url > | 远程仓库拷贝数据 |
10 | git config --list | 列出所有 Git 当时能找到的配置 |
11 | git help < verb > | Git 命令的使用手册 |
12 | git diff < params > | 查看尚未暂存的文件更新了 |
13 | git rm < file > | 已跟踪文件清单中移除 |
14 | git mv < file > | 移动文件 |
15 | git log < params > | 查看提交历史 |
16 | git remote < url > (git remote show origin) | |
17 | git remote add < shortname > < url > | 添加远程仓库 |
18 | git fetch [remote-name] | 从远程仓库中抓取与拉取 |
19 | git remote rename | 远程仓库的移除与重命名 |
20 | git tag | 列出标签 |
21 | git tag -a v1.0 -m ‘备注信息’ 附注标签(annotated) | 创建附注标签 |
22 | git tag v1.2-lv | 创建轻量标签 |
23 | git tag -d -v1.0 | 删除标签 |
24 | git checkout 2.0.0 | 检出标签 |
25 | git branch (testing) | 创建分支 |
26 | git checkout (testing) | 分支切换 |
27 | git merge (testing) | 合并分支 |
28 | git mergetool | 启动一个合适的可视化合并工具 |
29 | git branch -v | 查看每一个分支的最后一次提交 |
30 | git branch --merged | 查看哪些分支已经合并到当前分支 |
31 | git branch --no-merged | 查看所有包含未合并工作的分支 |
32 | git branch -d (testing) | 普通删除分支 -D强行删除分支并丢掉那些工作 |
33 | git ls-remote (remote) | 显式地获得远程引用的完整列表 |
34 | git remote show (remote) | 获得远程分支的更多信息 |
35 | git rebase --onto master server client | 取出 client 分支,找出处于 client 分支和 server 分支的共同祖先之后的修改,然后把它们在 master 分支上重放一遍 |
36 | git remote add local_proj /opt/git/project.git | 增加一个本地版本库到现有的 Git 项目 |
37 | git reset --hard HEAD^ | ^ 表示回到上一个版本,如果需要回退到上上个版本的话,将HEAD改成HEAD^, 以此类推。那如果要回退到前100个版本,这种方法肯定不方便,我们可以使用简便命令操作:git reset –hard HEAD~100 |
38 | git reset –hard 版本号 | 版本回退,可以通过如下命令获取到版本号: git reflog 。 例如:git reset –hard e12928c |
4 github 部署网站
- Create a new repository 创建项目空间
- Owner.github.io 创建自己的 github.io ,必须跟Owner一致
- Public 创建
- 在 Desktop github 登陆账号,选择Owner.github.io空间右键 Show in Explorer 打开本地空间,并且为本地空间添加项目文件并且commit到远程空间,点击push origin 在点击Fetch origin 同步.查看远程空间内容情况。 如果通过 Owner.github.io 可以访问到说明网站正常
- 自定义域名访问,首先在你的本地空间创建CNAME文件写上你的自定义域名。然后通过解析记录类型CNAME,记录值 Owner.github.io 等几分钟通过自定义域名访问