当前位置: 首页 > news >正文

成都网站建设制作服务做网络销售都做什么网站

成都网站建设制作服务,做网络销售都做什么网站,开发网站开票名称是什么原因,建设网站的建筑公司1.1 关于版本控制 开始之前先看一个没有版本控制的例子 1.1.1 本地版本控制 本地版本控制系统 许多人习惯用复制整个项目目录的方式来保存不同的版本#xff0c;或许还会改名加上备份时间以示区别。这么做唯一的 好处就是简单#xff0c;但是特别容易犯错。有时候会混淆所在…1.1 关于版本控制 开始之前先看一个没有版本控制的例子 1.1.1 本地版本控制 本地版本控制系统 许多人习惯用复制整个项目目录的方式来保存不同的版本或许还会改名加上备份时间以示区别。这么做唯一的 好处就是简单但是特别容易犯错。有时候会混淆所在的工作目录一不小心会写错文件或者覆盖意想外的文件。 1.1.2 集中化的版本控制系统 如何让在不同系统上的开发者协同工作于是集中化的版本控制系统Centralized Version Control Systems简称 CVCS应运而生。这类系统诸如 CVS、Subversion 以及Perforce 等都有一个单一的集中管理的服务器保存所有文件的修订版本而协同工作的人们都通过客户端连到这台服务器取出最新的文件或者提交更新。多年以来这已成为版本控制系统的标准做法。 1.1.3 分布式版本控制系统 在这类系统中像Git、Mercurial、Bazaar 以及 Darcs 等客户端并不只提取最新版本的文件快照而是把代码仓库完整地镜像下来。这么一来任何一处协同工作用的服务器发生故障事后都可以用任何一个镜像出来的本地仓库恢复。因为每一次的克隆操作实际上都是一次对代码仓库的完整备份。 1.2 Git简介 官网Git git是一个分布式版本控制软件最初由林纳斯·托瓦兹Linus Torvalds创作于2005年以GPL发布。最初目的是为更好地管理Linux内核开发而设计。 Git 官方中文手册 Git - Book 1.2.1 Git历史 自2002年开始林纳斯·托瓦兹决定使用BitKeeper作为Linux内核主要的版本控制系统用以维护代码。因为BitKeeper为专有软件这个决定在社区中长期遭受质疑。在Linux社区中特别是理查德·斯托曼与自由软件基金会的成员主张应该使用开放源代码的软件来作为Linux核心的版本控制系统。林纳斯·托瓦兹曾考虑过采用现成软件作为版本控制系统例如Monotone但这些软件都存在一些问题特别是性能不佳。现成的方案如CVS的架构受到林纳斯·托瓦兹的批评。 2005年安德鲁·垂鸠写了一个简单程序可以连接BitKeeper的存储库BitKeeper著作权拥有者拉里·麦沃伊认为安德鲁·垂鸠对BitKeeper内部使用的协议进行逆向工程决定收回无偿使用BitKeeper的授权。Linux内核开发团队与BitMover公司进行蹉商但无法解决他们之间的歧见。林纳斯·托瓦兹决定自行开发版本控制系统替代BitKeeper以十天的时间编写出第一个git版本 1.3 安装git 1.3.1 环境说明 [rootgit ~]# rpm -qa centos-release centos-release-7-4.1708.el7.centos.x86_64 [rootgit ~]# uname -a Linux gitlab 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux [rootgit ~]# getenforce Disabled [rootgit ~]# systemctl status firewalld.service ● firewalld.service - firewalld - dynamic firewall daemonLoaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)Active: inactive (dead)Docs: man:firewalld(1) 本文使用的linux系统均为该系统 本文使用的windows系统为 Microsoft Windows [版本 10.0.15063] 1.3.2 Yum安装Git centos 自带git [rootgit ~]# rpm -qa git git-1.8.3.1-11.el7.x86_64 安装方法 [rootgit ~]# yum install git -y 1.3.3 编译安装 编译安装可以安装较新版本的git Git下载地址 https://github.com/git/git/releases # 安装依赖关系 [rootgit ~]# yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel autoconf gcc perl-ExtUtils-MakeMaker # 编译安装 [rootgit ~]# tar -zxf git-2.0.0.tar.gz [rootgit ~]# cd git-2.0.0 [rootgit ~]# ./configure --prefix/usr/local/git # 没有文件可以略过 [rootgit ~]# make   [rootgit ~]# make install   1.4 初次运行 Git 前的配置 1.4.1 配置git 命令集 git config --global user.name username #配置git使用用户 git config --global user.email emailmail.com #配置git使用邮箱 git config --global color.ui true #语法高亮 git config --list # 查看全局配置 配置过程 [rootgitlab ~]# git config --global user.name newrain #配置git使用用户 [rootgitlab ~]# git config --global user.email newrainaliyun.com #配置git使用邮箱 [rootgitlab ~]# git config --global color.ui true #语法高亮 [rootgitlab ~]# git config --list # 查看全局配置 user.namenewrain user.mailnewrainaliyun.com color.uitrue 生成的配置文件 [rootgitlab ~]# cd [rootgitlab ~]# cat .gitconfig [user]name newrainemail newrainaliyun.com [color]ui true 1.4.2 获取帮助 使用Git时需要获取帮助有三种方法可以找到Git命令的使用手册 git help verb git verb --help man git-verb 例如要想获得配置命令的手册执行 git help config 1.5 获取 Git 仓库初始化仓库 1.5.1 创建裸库 [rootgitlab ~]# useradd git [rootgitlab ~]# passwd git [rootgitlab ~]# mkdir /git-root/ [rootgitlab ~]# cd /git-root/ [rootgitlab git-root]# git init --bare shell.git Initialized empty Git repository in /git-root/shell.git/ [rootgitlab git-root]# chown -R git:git shell.git 1.5.2 创建本地库 ​ [rootgitlab opt]# ssh-keygen [rootgitlab opt]# ssh-copy-id git192.168.249.156 [rootgitlab opt]# git clone git192.168.249.156:/git-root/shell.git [rootgitlab opt]# ls rh shell [rootgitlab opt]# cd shell/ [rootgitlab shell]# vim test1.sh [rootgitlab shell]# git add test1.sh [rootgitlab shell]# git commit -m first commit [master (root-commit) 33c5fbf] first commit1 file changed, 2 insertions()create mode 100644 test1.sh [rootgitlab shell]# git push origin master Counting objects: 3, done. Writing objects: 100% (3/3), 230 bytes | 0 bytes/s, done. Total 3 (delta 0), reused 0 (delta 0) To git192.168.1.102:/git-root/shell.git* [new branch]     master - master [rootgitlab shell]# # git cat 1.6 Git命令常规操作 常用命令说明 命令命令说明#add添加文件内容至索引bisect通过二分查找定位引入 bug 的变更#branch列出、创建或删除分支#checkout检出一个分支或路径到工作区#clone克隆一个版本库到一个新目录#commit记录变更到版本库#diff显示提交之间、提交和工作区之间等的差异fetch从另外一个版本库下载对象和引用grep输出和模式匹配的行#init创建一个空的#log显示提交日志#merge合并两个或更多开发历史#mv移动或重命名一个文件、目录或符号链接#pull获取并合并另外的版本库或一个本地分支#push更新远程引用和相关的对象rebase本地提交转移至更新后的上游分支中#reset重置当前HEAD到指定状态#rm从工作区和索引中删除文件show显示各种类型的对象#status显示工作区状态#tag创建、列出、删除或校验一个GPG签名的 tag 对象 常用操作示意图 文件的状态变化周期 1.6.1 创建文件 [rootgitlab git_data]# touch README [rootgitlab git_data]# git status # 位于分支 master # # 初始提交 # # 未跟踪的文件: #   使用 git add file... 以包含要提交的内容 # #   README 提交为空但是存在尚未跟踪的文件使用 git add 建立跟踪 --- # On branch master # # Initial commit # # Untracked files: #   (use git add file... to include in what will be committed) # #       README nothing added to commit but untracked files present (use git add to track) 添加文件跟踪 [rootgitlab git_data]# git add ./* [rootgitlab git_data]# git status # 位于分支 master # # 初始提交 # # 要提交的变更 #   使用 git rm --cached file... 撤出暂存区 # #   新文件   README # --- # On branch master # # Initial commit # # Changes to be committed: #   (use git rm --cached file... to unstage) # #       new file:   README # ​ 文件会添加到.git的隐藏目录 [rootgitlab git_data]# tree .git/ .git/ ├── branches ├── config ├── description ├── HEAD ├── hooks │   ├── applypatch-msg.sample │   ├── commit-msg.sample │   ├── post-update.sample │   ├── pre-applypatch.sample │   ├── pre-commit.sample │   ├── prepare-commit-msg.sample │   ├── pre-push.sample │   ├── pre-rebase.sample │   └── update.sample ├── index ├── info │   └── exclude ├── objects │   ├── e6 │   │   └── 9de29bb2d1d6434b8b29ae775ad8c2e48c5391 │   ├── info │   └── pack └── refs├── heads└── tags 由工作区提交到本地仓库 [rootgitlab git_data]# git commit -m first commit   [master根提交 bb963eb] first commit1 file changed, 0 insertions(), 0 deletions(-)create mode 100644 README 查看git的状态 [rootgitlab git_data]# git status # 位于分支 master 无文件要提交干净的工作区 ​ # On branch master nothing to commit, working directory clean 提交后的git目录状态 [rootgitlab git_data]# tree .git/ .git/ ├── branches ├── COMMIT_EDITMSG ├── config ├── description ├── HEAD ├── hooks │   ├── applypatch-msg.sample │   ├── commit-msg.sample │   ├── post-update.sample │   ├── pre-applypatch.sample │   ├── pre-commit.sample │   ├── prepare-commit-msg.sample │   ├── pre-push.sample │   ├── pre-rebase.sample │   └── update.sample ├── index ├── info │   └── exclude ├── logs │   ├── HEAD │   └── refs │       └── heads │           └── master ├── objects │   ├── 54 │   │   └── 3b9bebdc6bd5c4b22136034a95dd097a57d3dd │   ├── bb │   │   └── 963eb32ad93a72d9ce93e4bb55105087f1227d │   ├── e6 │   │   └── 9de29bb2d1d6434b8b29ae775ad8c2e48c5391 │   ├── info │   └── pack └── refs├── heads│   └── master└── tags 1.6.2 添加新文件 git add * 添加到暂存区域 git commit 提交git仓库 -m 后面接上注释信息内容关于本次提交的说明方便自己或他人查看 修改或删除原有文件 常规方法 git add * git commit 简便方法 git commit -a -m 注释信息 -a 表示直接提交 Tell the command to automatically stage files that have been modified and deleted, but new files you have not told Git about are not affected. 1.6.3 删除git内的文件 命令说明 • 没有添加到暂存区的数据直接rm删除即可。 • 已经添加到暂存区数据 git rm --cached database #→将文件从git暂存区域的追踪列表移除(并不会删除当前工作目录内的数据文件) git rm -f database #→将文件数据从git暂存区和工作目录一起删除 命令实践 # 创建新文件[rootgitlab git_data]# touch 123 [rootgitlab git_data]# git status # 位于分支 master # 未跟踪的文件: #   使用 git add file... 以包含要提交的内容 # #   123 提交为空但是存在尚未跟踪的文件使用 git add 建立跟踪 --- # On branch master # Untracked files: #   (use git add file... to include in what will be committed) # #       123 nothing added to commit but untracked files present (use git add to track) # 将文件添加到暂存区域 [rootgitlab git_data]# git add 123 [rootgitlab git_data]# git status # 位于分支 master # 要提交的变更 #   使用 git reset HEAD file... 撤出暂存区 # #   新文件   123 --- # On branch master # Changes to be committed: #   (use git reset HEAD file... to unstage) # #       new file:   123 # 删除文件 [rootgitlab git_data]# rm 123 -f [rootgitlab git_data]# ls README [rootgitlab git_data]# git status # 位于分支 master # 要提交的变更 #   使用 git reset HEAD file... 撤出暂存区 # #   新文件   123 # # 尚未暂存以备提交的变更 #   使用 git add/rm file... 更新要提交的内容 #   使用 git checkout -- file... 丢弃工作区的改动 # #   删除     123 # --- # On branch master # Changes to be committed: #   (use git reset HEAD file... to unstage) # #       new file:   123 # # Changes not staged for commit: #   (use git add/rm file... to update what will be committed) #   (use git checkout -- file... to discard changes in working directory) # #       deleted:   123 [rootgitlab git_data]# git reset HEAD ./* [rootgitlab git_data]# git status # 位于分支 master 无文件要提交干净的工作区 --- # On branch master nothing to commit, working directory clean 1.6.4 重命名暂存区数据 • 没有添加到暂存区的数据直接mv/rename改名即可。 • 已经添加到暂存区数据 git mv README NOTICE [rootgitlab git_data]# git mv README notice [rootgitlab git_data]# git status # On branch master # Changes to be committed: #   (use git reset HEAD file... to unstage) # #       renamed:   README - notice # 1.6.5 查看历史记录 • git log #→查看提交历史记录 • git log -2 #→查看最近几条记录 • git log -p -1 #→-p显示每次提交的内容差异,例如仅查看最近一次差异 • git log --stat -2 #→--stat简要显示数据增改行数这样能够看到提交中修改过的内容对文件添加或移动的行数并在最后列出所有增减行的概要信息 • git log --prettyoneline #→--pretty根据不同的格式展示提交的历史信息 • git log --prettyfuller -2 #→以更详细的模式输出提交的历史记录 • git log --prettyfomat:%h %cn #→查看当前所有提交记录的简短SHA-1哈希字串与提交着的姓名。 使用format参数来指定具体的输出格式 格式说明%s提交说明。%cd提交日期。%an作者的名字。%cn提交者的姓名。%ce提交者的电子邮件。%H提交对象的完整SHA-1哈希字串。%h提交对象的简短SHA-1哈希字串。%T树对象的完整SHA-1哈希字串。%t树对象的简短SHA-1哈希字串。%P父对象的完整SHA-1哈希字串。%p父对象的简短SHA-1哈希字串。%ad作者的修订时间。 命令实践 [rootgitlab git_data]# git log commit f5b79552635a7dc60afc35c99c1170366d8c5f6b Author: newrain newrainaliyun.com Date:   Sat May 11 21:29:21 2019 -0700 ​456 ​ commit e9ed8b38a0052cdcd85ecee833ea8198b077f881 Author: newrain rootvmdesk.localdomain Date:   Sat May 11 21:21:12 2019 -0700 ​commit 123 ​ commit 9d394114177b8da9e452d001ec610e9c45ceede3 Author: newrain rootvmdesk.localdomain Date:   Sat May 11 20:19:23 2019 -0700 ​first commit 1.6.6 还原历史数据 Git服务程序中有一个叫做HEAD的版本指针当用户申请还原数据时其实就是将HEAD指针指向到某个特定的提交版本但是因为Git是分布式版本控制系统为了避免历史记录冲突故使用了SHA-1计算出十六进制的哈希字串来区分每个提交版本另外默认的HEAD版本指针会指向到最近的一次提交版本记录而上一个提交版本会叫HEAD^上上一个版本则会叫做HEAD^^当然一般会用HEAD~5来表示往上数第五个提交版本。 git reset --hard hash git reset --hard HEAD^ #→还原历史提交版本上一次 git reset --hard 3de15d4 #→找到历史还原点的SHA-1值后就可以还原(值不写全,系统 会自动匹配) 测试命令 [rootgitlab git_data]# git log commit f5b79552635a7dc60afc35c99c1170366d8c5f6b Author: newrain newrainaliyun.com Date:   Sat May 11 21:29:21 2019 -0700 ​456 ​ commit e9ed8b38a0052cdcd85ecee833ea8198b077f881 Author: newrain rootvmdesk.localdomain Date:   Sat May 11 21:21:12 2019 -0700 ​commit 123 ​ commit 9d394114177b8da9e452d001ec610e9c45ceede3 Author: newrain rootvmdesk.localdomain Date:   Sat May 11 20:19:23 2019 -0700 ​first commit ​ 还原数据 [rootgitlab git_data]# git reset --hard e9ed8b38a HEAD is now at e9ed8b3 commit 123 HEAD 现在位于 e9ed8b3 commit 123 # 查看数据 [rootgitlab git_data]# ls 123 README 1.6.7 还原未来数据 什么是未来数据就是你还原到历史数据了但是你后悔了想撤销更改但是git log已经找不到这个版本了。 git reflog #→查看未来历史更新点 测试命令 [rootgitlab git_data]# git reflog e9ed8b3 HEAD{0}: reset: moving to e9ed8b38a f5b7955 HEAD{1}: commit: 456 e9ed8b3 HEAD{2}: commit: commit 123 9d39411 HEAD{3}: commit (initial): first commit [rootgitlab git_data]#   1.6.8 标签使用 前面回滚使用的是一串字符串又长又难记。 git tag v1.0 #→当前提交内容打一个标签(方便快速回滚)每次提交都可以打个tag。 git tag #→查看当前所有的标签 git show v1.0 #→查看当前1.0版本的详细信息 git tag v1.2 -m version 1.2 release is test #→创建带有说明的标签,-a指定标签名字-m指定说明文字 git tag -d v1.0 #→我们为同一个提交版本设置了两次标签,删除之前的v1.0 测试命令 [rootgitlab git_data]# git reset --hard e9ed8b38a HEAD is now at e9ed8b3 commit 123 [rootgitlab git_data]# git reset --hard V1.0 HEAD is now at e9ed8b3 add test dir ​ [rootgitlab git_data]# git tag v20171129 [rootgitlab git_data]# git tag v20171129 1.6.9 对比数据 git diff可以对比当前文件与仓库已保存文件的区别知道了对README作了什么修改 后再把它提交到仓库就放⼼多了。 git diff README git diff --name-only HEAD HEAD^ git diff --name-only head_id head_id2 1.7 分支结构 在实际的项目开发中尽量保证master分支稳定仅用于发布新版本平时不要随便直接修改里面的数据文件。 那在哪干活呢干活都在dev分支上。每个人从dev分支创建自己个人分支开发完合并到dev分支最后dev分支合并到master分支。所以团队的合作分支看起来会像下图那样。 1.7.1 分支切换 [rootgitlab git_data]# git branch newrain [rootgitlab git_data]# git branch * masternewrain [rootgitlab git_data]# git checkout newrain 切换到分支 newrain Switched to branch newrain [rootgitlab git_data]# git branch master * newrain 在newrain 分支进行修改 [rootgitlab git_data]# cat README This is git_data readme [rootgitlab git_data]# echo 1901 README [rootgitlab git_data]# git add . [rootgitlab git_data]# git commit -m 1901 [newrain 4310e7e] 19011 file changed, 1 insertion() [rootgitlab git_data]# git status # On branch newrain nothing to commit, working directory clean --- # 位于分支 newrain 无文件要提交干净的工作区 回到master分支 [rootgitlab git_data]# git checkout master Switched to branch master 切换到分支 master [rootgitlab git_data]# cat README This is git_data readme [rootgitlab git_data]# git log -1 commit f5b79552635a7dc60afc35c99c1170366d8c5f6b Author: newrain newrainaliyun.com Date:   Sat May 11 21:29:21 2019 -0700 ​456 ​ 合并代码 [rootgitlab git_data]# git merge newrain Updating f5b7955..4310e7e Fast-forwardREADME | 1 1 file changed, 1 insertion() [rootgitlab git_data]# git status # On branch master nothing to commit, working directory clean # 位于分支 master 无文件要提交干净的工作区 [rootgitlab git_data]# cat README This is git_data readme 1901 1.7.2 合并失败解决 模拟冲突在文件的同一行做不同修改 在master 分支进行修改 [ rootgitlab git_data]# cat README This is git_data readme 1901 [rootgitlab git_data]# echo 1901-git README [rootgitlab git_data]# git commit -m newrain 1901-git [master 4e6c548] newrain 1901-git1 file changed, 1 insertion(), 2 deletions(-) 切换到newrain分支 [rootgitlab git_data]# git checkout newrain Switched to branch newrain [rootgitlab git_data]# cat README This is git_data readme 1901 [rootgitlab git_data]# echo newrain README [rootgitlab git_data]# git commit -m 1901-git-check # On branch newrain # Changes not staged for commit: #   (use git add file... to update what will be committed) #   (use git checkout -- file... to discard changes in working directory) # #       modified:   README # no changes added to commit (use git add and/or git commit -a) ​ 回到master分区进行合并出现冲突 [rootgitlab git_data]# git checkout master 切换到分支 master [rootgitlab git_data]# git merge linux 自动合并 README 冲突内容合并冲突于 README 自动合并失败修正冲突然后提交修正的结果。 解决冲突 [rootgitlab git_data]# vim README This is git_data readme 1901 newrain meger test ti meger test master # 手工解决冲突 [rootgitlab git_data]# git commit -a -m merge-ti-test [master 2594b2380] merge-ti-test 1.7.3 删除分支 因为之前已经合并了newrain分支所以现在看到它在列表中。 在这个列表中分支名字前没有 * 号的分支通常可以使用 git branch -d 删除掉你已经将它们的工作整合到了另一个分支所以并不会失去任何东西。 查看所有包含未合并工作的分支可以运行 git branch --no-merged git branch --no-mergedtesting 这里显示了其他分支。 因为它包含了还未合并的工作尝试使用 git branch -d 命令删除它时会失败 git branch -d testing error: The branch testing is not fully merged. If you are sure you want to delete it, run git branch -D testing. 如果真的想要删除分支并丢掉那些工作如同帮助信息里所指出的可以使用 -D 选项强制删除它。
http://www.sczhlp.com/news/236563/

相关文章:

  • 想学做网站需要学什么施工企业资质标准2021
  • 网站后台如何添加视频优化网站技术
  • 全国十大婚恋网站排名代做毕业设计网站
  • 在哪个网站可以学做甜点做网站必须要购买空间吗
  • 兰州网站seo珠海网站设计公司
  • 网站建设工具的种类做企业网站需要哪些
  • 网站建设订流量什么意思网站做的支付宝接口
  • 手机网站设计制作服务网站必须做301重定向吗
  • 永修县建设局网站amh wordpress伪静态
  • 做网站可以用电脑当服务器吗品牌推广型网站
  • 注册网站大全学校网站建设交流汇报
  • Ai元人文构想:自动驾驶伦理解析——从静态规则到动态涌现
  • 上海网站 建设青浦网站制作
  • 网站开发界面图标设计数字营销 h5 网站开发
  • 怎么给网站有一字做标记网站模板带后台下载
  • 第1063章 自己做视频网站mysql网站开发
  • 网站建设案例 星座苏州网站建设找思创
  • 云南网站制作案例蒲城矿建设备制造厂网站
  • 抚宁建设局网站阳江市最大人才招聘网
  • 智慧团建网站登录平台pc端沈阳seo排名优化教程
  • 软件库网站源码安卓软件开发自学教程
  • 网站怎么做网页口碑营销成功案例
  • 南翔企业网站开发建设天津专业做网站
  • 网站开发合作协议合同范本搭建网页游戏平台
  • asp. net 做网站网站认领
  • app优化网站开发深圳哪里网站建设好
  • 泰安口碑好的网站建设wordpress企业mip模板
  • 网站生成自助做网站不用服务器吗
  • 辽源建站公司visual studio 2010 网站开发
  • 做网站黑吃黑定什么罪上海的所有公司