1.Devops介绍

1.Devops是什么

开发 development

运维 operations

2.Devops能干嘛

  1. 提高产品质量
  2. 1 自动化测试
  3. 2 持续集成
  4. 3 代码质量管理工具
  5. 4 程序员鼓励师

3.Devops如何实现

设计架构规划‐代码的存储‐构建‐测试、预生产、部署、监控

2.Git版本控制系统

1.版本控制系统简介

  1. vcs `version control system`
  2. 版本控制系统是一种记录一个或若干个文件内容变化,以便将来查阅特定版本内容情况的系统
  3. 记录文件的所有历史变化
  4. 随时可恢复到任何一个历史状态
  5. 多人协作开发

2.为什么需要版本控制系统

3.常见版本管理工具

SVN

集中式的版本控制系统,只有一个中央数据仓库,如果中央数据仓库挂了或者不可访问,所有的使用者无法使用SVN,无

法进行提交或备份文件。

Git

3 .Git安装

1. 系统环境准备

  1. root@gitgit~]# cat /etc/redhat-release #查看系统版本
  2. CentOS Linux release 7.1.1503 (Core)
  3. [root@gitgit ~]# uname -r #查看内核版本
  4. 3.10.0229.el7.x86_64
  5. [root@gitgit ~]# getenforce #确认Selinux关闭状态
  6. Disabled
  7. [root@gitgit ~]# systemctl stop firewalld #关闭防火墙

2. Git安装

  1. [root@gitgit ~]# yum install git

3.Git部署配置

  1. [root@git ~]# git config
  2. ‐‐global 使用全局配置文件
  3. ‐‐system 使用系统级配置文件
  4. ‐‐local 使用版本库级配置文件

配置git使用用户

  1. [root@gitgit ~]# git config --global user.name "zeq"

配置git使用邮箱

  1. [root@gitgit ~]# git config --global user.email "chn@eqnice.com"

语法高亮

  1. [root@gitgit ~]# git config --global color.ui true

查看配置

  1. [root@gitgit ~]# git config –‐list
  2. user.name=zeq
  3. user.email=chn@eqnice.com
  4. color.ui=true
  5. [root@git ~]# cat .gitconfig
  6. [user]
  7. name = zeq
  8. email = chn@eqnice.com
  9. [color]
  10. ui = true

4.git初始化

  • 初始化工作目录、对已存在的目录或者对已存在的目录都可进行初始化
  1. mkdir git_data
  2. cd git_data/
  • 初始化
  1. git init
  • 查看工作区状态
  1. git status
  • 隐藏文件介绍:
  1. branches # 分支目录
  2. config # 定义项目特有的配置选项
  3. description # 仅供git web程序使用
  4. HEAD # 指示当前的分支
  5. hooks # 包含git钩子文件
  6. info # 包含一个全局排除文件(exclude文件)
  7. objects # 存放所有数据内容,有info和pack两个子文件夹
  8. refs # 存放指向数据(分支)的提交对象的指针
  9. index # 保存暂存区信息,在执行git init的时候,这个文件还没有

4 .Git常规使用

1. 创建数据-提交数据

2. git四种状态

3. git基础命令

  1. [root@git git_data]# git status
  2. # 位于分支 master
  3. # 初始提交
  4. - 无文件要提交(创建/拷贝文件并使用 "git add" 建立跟踪)
  5. [root@git git_data]# touch a b c
  6. [root@git git_data]# git status
  7. # 位于分支 master
  8. #
  9. # 初始提交
  10. #
  11. # 未跟踪的文件:
  12. # (使用 "git add <file>..." 以包含要提交的内容)
  13. #
  14. # a
  15. # b
  16. # c
  17. 提交为空,但是存在尚未跟踪的文件(使用 "git add" 建立跟踪)
  18. [root@git git_data]# git add a
  19. [root@git git_data]# git status
  20. # 位于分支 master
  21. #
  22. # 初始提交
  23. #
  24. # 要提交的变更:
  25. # (使用 "git rm ‐‐cached <file>..." 撤出暂存区)
  26. #
  27. # 新文件: a
  28. #
  29. # 未跟踪的文件:
  30. # (使用 "git add <file>..." 以包含要提交的内容)
  31. #
  32. # b
  33. # c
  34. [root@git git_data]# ll .git/
  35. 总用量 20
  36. drwxrxrx 2 root root 6 8 23 05:44 branches
  37. rwr‐‐r‐‐ 1 root root 92 8 23 05:44 config
  38. rwr‐‐r‐‐ 1 root root 73 8 23 05:44 description
  39. rwr‐‐r‐‐ 1 root root 23 8 23 05:44 HEAD
  40. drwxrxrx 2 root root 4096 8 23 05:44 hooks
  41. rwr‐‐r‐‐ 1 root root 96 8 23 07:06 index # git add a 把文件提交到了暂存区
  42. drwxrxrx 2 root root 20 8 23 05:44 info
  43. drwxrxrx 5 root root 37 8 23 07:06 objects
  44. drwxrxrx 4 root root 29 8 23 05:44 refs
  45. [root@git git_data]# git add . # 使用git add . 或者* 添加目录中所有改动过的文件
  46. [root@git git_data]# git status
  47. # 位于分支 master
  48. #
  49. # 初始提交
  50. #
  51. # 要提交的变更:
  52. # (使用 "git rm ‐‐cached <file>..." 撤出暂存区)
  53. #
  54. # 新文件: a
  55. # 新文件: b
  56. # 新文件: c
  57. [root@git git_data]# git rm ‐‐cached c
  58. rm 'c'
  59. [root@git git_data]# ll
  60. 总用量 0
  61. rwr‐‐r‐‐ 1 root root 0 8 23 07:05 a
  62. rwr‐‐r‐‐ 1 root root 0 8 23 07:05 b
  63. rwr‐‐r‐‐ 1 root root 0 8 23 07:05 c
  64. [root@git git_data]# git status
  65. # 位于分支 master
  66. #
  67. # 初始提交
  68. #
  69. # 要提交的变更:
  70. # (使用 "git rm ‐‐cached <file>..." 撤出暂存区)
  71. #
  72. # 新文件: a
  73. # 新文件: b
  74. #
  75. # 未跟踪的文件:
  76. # (使用 "git add <file>..." 以包含要提交的内容)
  77. #
  78. # c
  79. 删除文件
  80. 1.先从暂存区撤回到工作区、然后直接删除文件
  81. git rm ‐‐cached c
  82. rm f c
  83. 2.直接从暂存区域同工作区域一同删除文件命令
  84. git rm f b
  85. [root@git git_data]# git commit m "commit a" # 提交到本地仓库
  86. [master(根提交) b4017a8] commit a
  87. 1 file changed, 0 insertions(+), 0 deletions(‐)
  88. create mode 100644 a
  89. [root@git git_data]# git status
  90. # 位于分支 master
  91. 无文件要提交,干净的工作区
  • 修改文件名称两种方法
  1. [root@git git_data]# mv a a.txt
  2. [root@git git_data]# git status
  3. # 位于分支 master
  4. # 尚未暂存以备提交的变更:
  5. # (使用 "git add/rm <file>..." 更新要提交的内容)
  6. # (使用 "git checkout ‐‐ <file>..." 丢弃工作区的改动)
  7. #
  8. # 删除: a
  9. #
  10. # 未跟踪的文件:
  11. # (使用 "git add <file>..." 以包含要提交的内容)
  12. #
  13. # a.txt
  14. 修改尚未加入提交(使用 "git add" 和/或 "git commit ‐a"
  15. [root@git git_data]# git rm ‐‐cached a # 从暂存区删除a文件
  16. rm 'a'
  17. [root@git git_data]# git status
  18. # 位于分支 master
  19. # 要提交的变更:
  20. # (使用 "git reset HEAD <file>..." 撤出暂存区)
  21. #
  22. # 删除: a
  23. #
  24. # 未跟踪的文件:
  25. # (使用 "git add <file>..." 以包含要提交的内容)
  26. #
  27. # a.txt
  28. [root@git git_data]# git add a.txt
  29. [root@git git_data]# git status
  30. # 位于分支 master
  31. # 要提交的变更:
  32. # (使用 "git reset HEAD <file>..." 撤出暂存区)
  33. #
  34. # 重命名: a ‐> a.txt # 识别到a和a.txt相同为重命名
  35. [root@git git_data]# git commit m "commit a.txt"
  36. 2.直接用git命令重命名
  37. [root@git git_data]# git mv a.txt a 把工作区域和暂存区域的文件同时修改文件名称
  38. [root@git git_data]# git status
  39. # 位于分支 master
  40. # 要提交的变更:
  41. # (使用 "git reset HEAD <file>..." 撤出暂存区)
  42. #
  43. # 重命名: a.txt ‐> a
  44. git commit m "rename a.txt a"
  1. git status 只能查看区域状态的不同,不能查看文件内容的变化。
  2. git diff 查看内容的不同
  3. [root@git git_data]# echo aaa > a
  4. [root@git git_data]# git diff a # 比对本地工作目录和暂存区文件的不同
  5. diff ‐‐git a/a b/a
  6. index e69de29..72943a1 100644#
  7. ‐‐‐ a/a
  8. +++ b/a
  9. @@ 0,0 +1 @@
  10. +aaa
  11. [root@git git_data]# git add a # 提交a文件到暂存区域、在用git diff是相同的
  12. [root@git git_data]# git diff ‐‐cached a # 比对的是暂存区和本地仓库文件的不同处
  13. diff ‐‐git a/a b/a
  14. index e69de29..72943a1 100644
  15. ‐‐‐ a/a
  16. +++ b/a
  17. @@ 0,0 +1 @@
  18. +aaa
  19. [root@git git_data]# git commit m "modified a" # 提交后在比对则暂存区和本地仓库内容相同
  20. [master 4c57a60] modified a
  21. 1 file changed, 1 insertion(+)
  22. [root@git git_data]# git diff ‐‐cached a
  23. [root@git git_data]#
  24. git commit # 相当于虚拟机的镜像、任何操作都被做了一次快照,可恢复到任意一个位置
  25. [root@git git_data]# git log 查看历史的git commit快照操作
  26. commit 4c57a605997f511149bfec53d9018b503e77f961 # 哈希唯一标识的字符串
  27. Author: lizhenya <lizhenya@qq.com> # 作者个人信息
  28. Date: Thu Aug 23 07:54:23 2018 +0800 # 时间
  29. modified a # ‐m 个人写的提交描述信息
  30. commit 56925321114eb9adf09b42a733a6f9f3edd9ad65
  31. Author: lizhenya <lizhenya@qq.com>
  32. Date: Thu Aug 23 07:39:41 2018 +0800
  33. rename a.txt a
  34. commit 7adfca06559ef7739dffdc11ecb7fb8800a9931a
  35. Author: lizhenya <lizhenya@qq.com>
  36. Date: Thu Aug 23 07:36:47 2018 +0800
  37. commit a.txt
  38. commit b4017a876cfed78425fe58e7ecbcd49199ed5a11
  39. Author: lizhenya <lizhenya@qq.com>
  40. Date: Thu Aug 23 07:22:29 2018 +0800
  41. [root@git git_data]# git log ‐‐oneline # 一行简单的显示commit信息
  42. 4c57a60 modified a
  43. 5692532 rename a.txt a
  44. 7adfca0 commit a.txt
  45. b4017a8 commit a
  46. [root@git git_data]# git log ‐‐oneline ‐‐decorate # 显示当前的指针指向哪里
  47. 4c57a60 (HEAD, master) modified a
  48. 5692532 rename a.txt a
  49. 7adfca0 commit a.txt
  50. b4017a8 commit a
  51. [root@git git_data]# git log p # 显示具体内容的变化
  52. [root@git git_data]# git log 1 # 只显示1条内容
  53. 恢复历史数据
  54. 1.只更改了当前目录
  55. [root@git git_data]# echo "333" >> a
  56. [root@git git_data]# git status
  57. # 位于分支 master
  58. # 尚未暂存以备提交的变更:
  59. # (使用 "git add <file>..." 更新要提交的内容)
  60. # (使用 "git checkout ‐‐ <file>..." 丢弃工作区的改动) # 看提示使用此命令覆盖工作区的改动
  61. #
  62. # 修改: a
  63. #
  64. 修改尚未加入提交(使用 "git add" 和/或 "git commit ‐a"
  65. [root@git git_data]# git checkout ‐‐ a # 从暂存区覆盖本地工作目录
  66. [root@git git_data]# git status
  67. # 位于分支 master
  68. 无文件要提交,干净的工作区
  69. [root@git git_data]# cat a
  70. aaa
  71. 2.修改了本地目录且同时提交到了暂存区
  72. [root@git git_data]# echo ccc >> a # 添加新内容
  73. [root@git git_data]# git add . # 提交到暂存区
  74. [root@git git_data]# git diff ‐‐cached #比对暂存区和本地仓库的内容
  75. diff ‐‐git a/a b/a
  76. index 72943a1..959479a 100644
  77. ‐‐‐ a/a
  78. +++ b/a
  79. @@ 1 +1,2 @@
  80. aaa
  81. +ccc
  82. [root@git git_data]# git status
  83. # 位于分支 master
  84. # 要提交的变更:
  85. # (使用 "git reset HEAD <file>..." 撤出暂存区)
  86. #
  87. # 修改: a
  88. [root@git git_data]# git reset HEAD a # 本地仓库覆盖暂存区域
  89. 重置后撤出暂存区的变更:
  90. M a
  91. [root@git git_data]# git diff a
  92. diff ‐‐git a/a b/a
  93. index 72943a1..959479a 100644
  94. ‐‐‐ a/a
  95. +++ b/a
  96. @@ 1 +1,2 @@
  97. aaa
  98. +ccc
  99. [root@git git_data]# git diff ‐‐cached a
  100. [root@git git_data]#
  101. 3.修改了工作目录后提交到了暂存区和本地仓库后进行数据恢复
  102. echo bbb >>a # 提交新的bbb文件到a
  103. git commit m "add bbb"
  104. echo ccc >> a
  105. git commit am "add ccc" # 这时候发现改错代码了,想还原某一次提交的文件快照
  106. [root@git git_data]# git log ‐‐oneline
  107. 59ba2a9 add ccc
  108. dbead4c add bbb
  109. 4c57a60 modified a
  110. 5692532 rename a.txt a
  111. 7adfca0 commit a.txt
  112. b4017a8 commit a
  113. `Git服务程序中有一个叫做HEAD的版本指针,当用户申请还原数据时,其实就是将HEAD指针指向到某个特定的提交
  114. 版本,但是因为Git是分布式 版本控制系统,为了避免历史记录冲突,故使用了SHA‐1计算出十六进制的哈希字串
  115. 来区分每个提交版本,另外默认的HEAD版本指针会指向到最近的一次提交版本记录`
  116. [root@git git_data]# git reset ‐‐hard 4c57a60
  117. HEAD 现在位于 4c57a60 modified a
  118. `刚刚的操作实际上就是改变了一下HEAD版本指针的位置,就是你将HEAD指针放在那里,那么你的当前工作版本就
  119. 会定位在那里,要想把内容再还原到最新提交的版本,先看查看下提交版本号`
  120. [root@git git_data]# cat a # 打开发现回退错了,应该回退到bbb版本
  121. aaa
  122. [root@git git_data]# git log ‐‐oneline # 这时候查看log没有commit bbb的历史了
  123. 4c57a60 modified a
  124. 5692532 rename a.txt a
  125. 7adfca0 commit a.txt
  126. b4017a8 commit a
  127. `怎么搞得?竟然没有了add bbb这个提交版本记录?
  128. 原因很简单,因为我们当前的工作版本是历史的一个提交点,这个历史提交点还没有发生过add bbb 更新记录,所
  129. 以当然就看不到了,要是想”还原到未来”的历史更新点,可以用git reflog命令来查看所有的历史记录:`
  130. [root@git git_data]# git reflog # 使用git reflog 可查看总历史内容
  131. 4c57a60 HEAD@{0}: reset: moving to 4c57a60
  132. 59ba2a9 HEAD@{1}: commit: add ccc
  133. dbead4c HEAD@{2}: commit: add bbb
  134. 4c57a60 HEAD@{3}: commit: modified a
  135. 5692532 HEAD@{4}: commit: rename a.txt a
  136. 7adfca0 HEAD@{5}: commit: commit a.txt
  137. b4017a8 HEAD@{6}: commit (initial): commit a
  138. [root@git git_data]# git reset ‐‐hard dbead4c # 然后使用reset回到bbb的版本内容下
  139. HEAD 现在位于 dbead4c add bbb
  140. [root@git git_data]# cat a
  141. aaa
  142. bbb

5. git分支

分支即是平行空间,假设你在为某个手机系统研发拍照功能,代码已经完成了80%,但如果将这不完整的代码直接

提交到git仓库中,又有可能影响到其他人的工作,此时我们便可以在该软件的项目之上创建一个名叫”拍照功

能”的分支,这种分支只会属于你自己,而其他人看不到,等代码编写完成后再与原来的项目主分支合并下即可,这

样即能保证代码不丢失,又不影响其他人的工作。

一般在实际的项目开发中,我们要尽量保证master分支是非常稳定的,仅用于发布新版本,平时不要随便直接修

改里面的数据文件,而工作的时候则可以新建不同的工作分支,等到工作完成后在合并到master分支上面,所以团

队的合作分支看起来会像上面图那样。

  1. [root@git git_data]# git log ‐‐oneline ‐‐decorate
  2. dbead4c (HEAD, master) add bbb # 默认分支指向你最后一次的提交 HEAD头、指针
  3. 4c57a60 modified a
  4. 5692532 rename a.txt a
  5. 7adfca0 commit a.txt
  6. b4017a8 commit a
  7. HEAD 指针指向哪个分支、说明你当前在哪个分支下工作`
  8. [root@git git_data]# git branch testing # 新建testing分支
  9. [root@git git_data]# git branch
  10. * master # *号在哪里就说明当前在哪个分支上入下图所示
  11. testing

  1. [root@git git_data]# git log ‐‐oneline ‐‐decorate # 通过命令查看分支指向
  2. dbead4c (HEAD, testing, master) add bbb
  3. 4c57a60 modified a
  4. 5692532 rename a.txt a
  5. 7adfca0 commit a.txt
  6. b4017a8 commit a
  7. [root@git git_data]# git checkout testing # 切换到testing分支、对应的HEAD指针也指向了testing
  8. 切换到分支 'testing'
  9. [root@git git_data]# git branch
  10. master
  11. * testing

  1. [root@git git_data]# touch test
  2. [root@git git_data]# git add .
  3. [root@git git_data]# git commit m "commit test"

  1. [root@git git_data]# git checkout master # 切换到master分支后指针指向到了master
  2. 切换到分支 'master'
  3. [root@git git_data]# git branch
  4. * master
  5. testing
  6. [root@git git_data]# ll # 正常情况下是没有test文件的、保证master分支是线上环境的
  7. 总用量 4
  8. rwr‐‐r‐‐ 1 root root 8 8 23 08:42 a

  1. [root@git git_data]# touch master
  2. [root@git git_data]# git add .
  3. [root@git git_data]# git commit m "commit master"

合并分支

  1. [root@git git_data]# git merge testing # 提示输入描述信息 相当于git的‐m参数
  2. [root@git git_data]# git log ‐‐oneline ‐‐decorate
  3. 3258705 (HEAD, master) Merge branch 'testing'
  4. f5ae1d8 commit master
  5. ad4f25a (testing) commit test
  6. dbead4c add bbb
  7. 4c57a60 modified a
  8. 5692532 rename a.txt a
  9. 7adfca0 commit a.txt
  10. b4017a8 commit a

  1. 冲突合并
  2. [root@git git_data]# echo "master" >> a
  3. [root@git git_data]# git commit am "modified a master"
  4. [root@git git_data]# git checkout testing
  5. 切换到分支 'testing'
  6. [root@git git_data]# git branch
  7. master
  8. * testing
  9. [root@git git_data]# cat a
  10. aaa
  11. bbb
  12. [root@git git_data]# echo "testing" >>a
  13. [root@git git_data]# git commit am "modified a on testing branch"
  14. [root@git git_data]# git checkout master
  15. [root@git git_data]# git merge testing
  16. 自动合并 a
  17. 冲突(内容):合并冲突于 a
  18. 自动合并失败,修正冲突然后提交修正的结果。
  19. [root@git git_data]# cat a # 冲突的文件自动标识到文件里,手动更改冲突要保留的代码
  20. [root@git git_data]# git commit am "merge testing to master" # 进行提交即可
  21. [root@git git_data]# git log ‐‐oneline ‐‐decorate
  22. bba413d (HEAD, master) merge testing to master
  23. 34d7a55 (testing) modified a on testing branch
  24. ec1a424 modified a master
  25. 3258705 Merge branch 'testing'
  26. f5ae1d8 commit master
  27. ad4f25a commit test
  28. 删除分支‐d参数
  29. [root@git git_data]# git branch d testing
  30. 已删除分支 testing(曾为 34d7a55)。
  31. [root@git git_data]# git branch
  32. * master

6.git标签使用

标签也是指向了一次commit提交,是一个里程碑式的标签,回滚打标签直接加标签号,不需要加唯一字符串不好记

  1. [root@git git_data]# git tag a v1.0 m "aaa bbb master tesing version v1.0" # ‐a指定标签名字 ‐m 指定说明文字
  2. [root@git git_data]# git tag
  3. v1.0
  4. [root@git git_data]# git tag a v2.0 dbead4c m "add bbb version v2.0" # 指定某一次的提交为标签
  5. [root@git git_data]# git show v1.0 # 查看v1.0的信息 git show 加标签查看
  6. [root@git git_data]# git reset ‐‐hard v2.0 # 直接还原数据到v2.0
  7. HEAD 现在位于 dbead4c add bbb
  8. [root@git git_data]# ll
  9. 总用量 4
  10. rwr‐‐r‐‐ 1 root root 8 8 23 11:26 a
  11. rwr‐‐r‐‐ 1 root root 0 8 23 11:25 b
  12. [root@git git_data]# git tag d v2.0 # 删除标签 ‐d参数

5. github使用

1.什么是github

Github顾名思义是一个Git版本库的托管服务,是目前全球最大的软件仓库,拥有上百万的开发者用户,也是软件

开发和寻找资源的最佳途径,Github不仅可以托管各种Git版本仓库,还拥有了更美观的Web界面,您的代码文件可

以被任何人克隆,使得开发者为开源项贡献代码变得更加容易,当然也可以付费购买私有库,这样高性价比的私有

库真的是帮助到了很多团队和企业

2.github操作

  1. 1、注册用户
  2. 2、配置sshkey
  3. 3、创建项目
  4. 4、克隆项目到本地
  5. 5、推送新代码到github

1.注册用户

访问github网站

https://github.com/

点击注册

注册完成后添加新的项目

添加新项目之前要验证邮箱

2.配置ssh‐key

添加一个密钥

git服务器创建秘钥

  1. [root@git ~]# ssh-keygen
  2. Generating public/private rsa key pair.
  3. Enter file in which to save the key (/root/.ssh/id_rsa):
  4. Created directory '/root/.ssh'.
  5. Enter passphrase (empty for no passphrase):
  6. Enter same passphrase again:
  7. Your identification has been saved in /root/.ssh/id_rsa.
  8. Your public key has been saved in /root/.ssh/id_rsa.pub.
  9. The key fingerprint is:
  10. SHA256:n/V2kCiwwm2UfBsnQLm17eXUCBiBByyPbefmz5oQvfU root@gitlab
  11. The key's randomart image is:
  12. +---[RSA 2048]----+
  13. | o++o+ |
  14. | ..+o+ . |
  15. | ==++o.. o |
  16. | ..o==o=..+..|
  17. | o.So+.++o |
  18. | o oo*.o.. |
  19. | .o+ E .|
  20. | ..o . . |
  21. | ooo |
  22. +----[SHA256]-----+
  23. [root@git ~]# cat .ssh/id_rsa.pub
  24. ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCmv4aEEEpbUyzv1r6SN0JqOfeyQ7sZZbXxWFv4xflIJeK/rl8cF7UYCzjLEvwJlrkIjKSs5uW1x0zWEcZFiv5tGCiO7DeMR6pKUAn7NzNjKiCcElCXiqHVew84iTbxX4MWKlbFoJYO9/wQ1NlrQfqcSgZwJTLKBMVoMXvTWPPGXf6AwdSp68guFwwGDIV8BiHZiy61bKiWYSVKSDP47Y7VUV/bdwGaxG7tAfalWVpe6xXXRtsj58sENyIWbRI7/9XWqs+eV+CgI74YjOanMvHnHFlfg0tb+MewRb4tFGVmroFBRsvfI3Sl2fez2zHG0qh3f34/0KF1kitlWkgcBJqN root@git

3.创建项目

4.克隆项目到本地

  1. http方式克隆
  2. [root@git ~]# git clone https://github.com/eqzhang/zeq.git
  3. 正克隆到 'zeq'...
  4. warning: 您似乎克隆了一个空版本库。
  5. [root@git ~]# ll
  6. 总用量 4
  7. -rw-------. 1 root root 1271 9 3 17:37 anaconda-ks.cfg
  8. drwxr-xr-x 3 root root 18 11 20 19:47 zeq
  1. ssh方式克隆
  2. [root@git ~]# git clone git@github.com:eqzhang/zeq.git
  3. 正克隆到 'zeq'...
  4. warning: 您似乎克隆了一个空版本库。
  5. [root@git ~]# ll
  6. 总用量 4
  7. -rw-------. 1 root root 1271 9 3 17:37 anaconda-ks.cfg
  8. drwxr-xr-x 3 root root 18 11 20 19:51 zeq

如果用其中一种方式克隆成功以后,在用另一种方式克隆的话会报错(版本库已经存在),这时候可以删除存在的仓库在执行克隆

5.推送新代码到github

创建一个index.html的文件推送到github

  1. [root@git ~]# cd zeq/
  2. [root@git zeq]# echo 123 > index.html
  3. [root@git zeq]# ll
  4. 总用量 4
  5. -rw-r--r-- 1 root root 4 11 20 19:54 index.html
  6. [root@git zeq]# git add .
  7. [root@git zeq]# git push -u origin master #git push 推送本地仓库代码到远程仓库
  8. Counting objects: 3, done.
  9. Writing objects: 100% (3/3), 211 bytes | 0 bytes/s, done.
  10. Total 3 (delta 0), reused 0 (delta 0)
  11. remote:
  12. remote: Create a pull request for 'master' on GitHub by visiting:
  13. remote: https://github.com/eqzhang/zeq/pull/new/master
  14. remote:
  15. To git@github.com:eqzhang/zeq.git
  16. * [new branch] master -> master
  17. 分支 master 设置为跟踪来自 origin 的远程分支 master

进入github网页查看

  1. [root@git zeq]# git pull origin # 拉取远程仓库最新代码、然后进行上传
  • 上面操作是本地没有仓库,克隆的远程仓库
  • 如果我本地有本地仓库,我想把本地仓库的代码上传到我的远程仓库则需要进行关联远程仓库
  1. [root@git zeq]# git remote add origin git@github.com:eqzhang/zeq.git
  2. [root@git zeq]# git remote
  3. origin
  4. [root@git zeq]# git push -u origin master
  • 如果已存在origin则用rm删除
  1. [root@git zeq]# git remote add origin git@github.com:eqzhang/zeq.git
  2. fatal: 远程 origin 已经存在。
  3. [root@git zeq]# git remote rm origin
  4. [root@git zeq]# git remote
  5. [root@git zeq]#

Git详解及github的使用的更多相关文章

  1. Git详解和Github的使用

    Git和Github的概念: Git是分布式版本管理系统,简单说就是一个软件,用于记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的软件. Github是一个为用户提供Git服务的网站,简单说 ...

  2. Git详解及 github与gitlab使用

    1.1 关于版本控制 1.1.1 本地版本控制 本地版本控制系统 许多人习惯用复制整个项目目录的方式来保存不同的版本,或许还会改名加上备份时间以示区别.这么做唯一的 好处就是简单,但是特别容易犯错.有 ...

  3. Git详解及github与gitlab使用

    第一章 关于版本控制 第二章 GIT简介 第三章 GIT安装 第四章 初次运行GIT前配置 第五章 初始化仓库 第六章 GIT命令操作 第七章 GIT分支结构

  4. 【转】Git详解之一:Git起步

    原文网址:http://blog.jobbole.com/25775/ 原文:<Pro Git> 起步 本章介绍开始使用 Git 前的相关知识.我们会先了解一些版本控制工具的历史背景,然后 ...

  5. Git详解之一:Git起步

    起步 本章介绍开始使用 Git 前的相关知识.我们会先了解一些版本控制工具的历史背景,然后试着让 Git 在你的系统上跑起来,直到最后配置好,可以正常开始开发工作.读完本章,你就会明白为什么 Git ...

  6. 一文详解Hexo+Github小白建站

    作者:玩世不恭的Coder时间:2020-03-08说明:本文为原创文章,未经允许不可转载,转载前请联系作者 一文详解Hexo+Github小白建站 前言 GitHub是一个面向开源及私有软件项目的托 ...

  7. windows 安装Git详解

    windows 安装Git详解 一.Git简介 Git是一个开源的分布式版本控制系统,可以有效.高速的处理从很小到非常大的项目版本管理. Git 是 Linus Torvalds 为了帮助管理 Lin ...

  8. Git详解之一 Git实战

    Git详解之一 Git实战 入门 本章介绍开始使用 Git 前的相关知识.我们会先了解一些版本控制工具的历史背景,然后试着让 Git 在你的系统上跑起来,直到最后配置好,可以正常开始开发工作.读完本章 ...

  9. git原理,git命令使用详解,github使用 --有此图文并茂原来如此简单

    一.Git分布式控制系统原理:git有三个区,被管理的代码或文件是从:工作区-->暂存区-->本地版本库. 二.GitHub创建线上仓库GitHub是一个面向开源及私有软件项目的托管平台, ...

随机推荐

  1. 微服务学习笔记一:Spring Cloud简介

    1.Spring Cloud是一个工具集:Spring   Cloud是在Spring    Boot的基础上构建的,用于简化分布式系统构建的工具集:使架构师在创建和发布微服务时极为便捷和有效. Sp ...

  2. web应用和http协议

    一.web应用 Web应用程序是一种可以通过Web访问的应用程序: 程序的最大好处是用户很容易访问应用程序,用户只需要有浏览器即可,不需要再安装其他软件. 应用程序有两种模式C/S.B/S. 1.C/ ...

  3. BZOJ2438: [中山市选2011]杀人游戏(tarjan)

    题意 题目链接 Sol 这题挺考验阅读理解能力的.. 如果能读懂的话,不难发现这就是在统计有多少入度为\(0\)的点 缩点后判断一下即可 当然有一种例外情况是\(1 -> 3, 2 -> ...

  4. Java 重写hashCode() 时为什么要用 31 来计算

    在OSChina 中看到了一篇文章<Java 中正确使用 hashCode 和 equals 方法>,看到 hashCode 的方法体内的31比较有意思. 在Stackoverflow上找 ...

  5. Java开发高性能网站需要关注的事

    转自:http://www.javabloger.com/java-development-concern-those-things/ 近期各家IT媒体举办的业内技术大会让很多网站都在披露自己的技术内 ...

  6. 开通cnblogs博客

    开通博客,准备记录学习和开发过程

  7. 2.Swift教程翻译系列——Swift概览

    英文版PDF下载地址http://download.csdn.net/detail/tsingheng/7480427 依照传统学习程序语言都是从hello,world開始,在Swfit里面仅仅须要一 ...

  8. 【HHHOJ】ZJOI2019模拟赛(十六)4.07 解题报告

    点此进入比赛 得分: \(100+100+100=300\) 排名: \(Rank\ 1\) \(Rating\): \(+13\)(\(\frac18Rated\)) 备注: 这场比赛全是做过的原题 ...

  9. NW.js开发环境的搭建

    写在前面: 之前一直在找关于在mac怎么搭建nw.js的开发环境,苦于自己也没有很深入的理解,其实看看官方文档就差不多知道mac下要怎么整了. 官方文档的图: 正题开始: 先去下载一个nw.js的安装 ...

  10. Java中Synchronized的用法(简单介绍)

    简单介绍 synchronized是Java中的关键字,是一种同步锁.它修饰的对象有以下几种: 1. 修饰一个代码块,被修饰的代码块称为同步语句块,其作用的范围是大括号{}括起来的代码,作用的对象是调 ...