经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 软件/图像 » Git » 查看文章
Git详解及github的使用
来源:cnblogs  作者:张恩清  时间:2018/11/22 10:09:09  对本文有异议

1.Devops介绍

1.Devops是什么

1542716677_25861.png | left | 826x400

开发 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.为什么需要版本控制系统

1542716637_32137.png | left | 698x596

3.常见版本管理工具

SVN
集中式的版本控制系统,只有一个中央数据仓库,如果中央数据仓库挂了或者不可访问,所有的使用者无法使用SVN,无
法进行提交或备份文件。
Git

1542716651_21305.png | left | 698x485

3 .Git安装

1. 系统环境准备

  1. root@gitgit~]# cat /etc/redhat-release #查看系统版本 
  2. CentOS Linux release 7.1.1503 (Core) 
  3. [root@gitgit ~]# uname -#查看内核版本 
  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. 创建数据-提交数据

image.png | left | 711x374

2. git四种状态

image.png | left | 698x288

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. #   (使用 "git add <file>..." 以包含要提交的内容) 
  11. #       a 
  12. #       b 
  13. #       c 
  14. 提交为空,但是存在尚未跟踪的文件(使用 "git add" 建立跟踪) 
  15. [root@git git_data]# git add a 
  16. [root@git git_data]# git status 
  17. # 位于分支 master 
  18. # 初始提交 
  19. # 要提交的变更: 
  20. #   (使用 "git rm ‐‐cached <file>..." 撤出暂存区) 
  21. #       新文件:    a 
  22. # 未跟踪的文件: 
  23. #   (使用 "git add <file>..." 以包含要提交的内容) 
  24. #       b 
  25. #       c  
  26. [root@git git_data]# ll .git/ 
  27. 总用量 20 
  28. drwxrxr2 root root    6 8  23 05:44 branches 
  29. rwr‐‐r‐‐ 1 root root   92 8  23 05:44 config 
  30. rwr‐‐r‐‐ 1 root root   73 8  23 05:44 description 
  31. rwr‐‐r‐‐ 1 root root   23 8  23 05:44 HEAD 
  32. drwxrxr2 root root 4096 8  23 05:44 hooks 
  33. rwr‐‐r‐‐ 1 root root   96 8  23 07:06 index         # git add a 把文件提交到了暂存区  
  34. drwxrxr2 root root   20 8  23 05:44 info 
  35. drwxrxr5 root root   37 8  23 07:06 objects 
  36. drwxrxr4 root root   29 8  23 05:44 refs 
  37. [root@git git_data]# git add .         # 使用git add . 或者* 添加目录中所有改动过的文件 
  38. [root@git git_data]# git status 
  39. # 位于分支 master 
  40. # 初始提交 
  41. # 要提交的变更: 
  42. #   (使用 "git rm ‐‐cached <file>..." 撤出暂存区) 
  43. #       新文件:    a 
  44. #       新文件:    b 
  45. #       新文件:    c 
  46. [root@git git_data]# git rm ‐‐cached c 
  47. rm 'c' 
  48. [root@git git_data]# ll 
  49. 总用量 0 
  50. rwr‐‐r‐‐ 1 root root 0 8  23 07:05 a 
  51. rwr‐‐r‐‐ 1 root root 0 8  23 07:05 b 
  52. rwr‐‐r‐‐ 1 root root 0 8  23 07:05 c 
  53. [root@git git_data]# git status 
  54. # 位于分支 master 
  55. # 初始提交 
  56. # 要提交的变更: 
  57. #   (使用 "git rm ‐‐cached <file>..." 撤出暂存区) 
  58. #       新文件:    a 
  59. #       新文件:    b 
  60. # 未跟踪的文件: 
  61. #   (使用 "git add <file>..." 以包含要提交的内容) 
  62. #       c 
  63. 删除文件
  64. 1.先从暂存区撤回到工作区、然后直接删除文件 
  65. git rm ‐‐cached c 
  66. rm f c 
  67. 2.直接从暂存区域同工作区域一同删除文件命令 
  68. git rm f b 
  69.  
  70. [root@git git_data]# git commit "commit a"    # 提交到本地仓库 
  71. [master(根提交) b4017a8] commit a 
  72. 1 file changed, 0 insertions(+), 0 deletions(‐) 
  73. create mode 100644 a 
  74. [root@git git_data]# git status 
  75. # 位于分支 master 
  76. 无文件要提交,干净的工作区
  • 修改文件名称两种方法

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

5. git分支

分支即是平行空间,假设你在为某个手机系统研发拍照功能,代码已经完成了80%,但如果将这不完整的代码直接
提交到git仓库中,又有可能影响到其他人的工作,此时我们便可以在该软件的项目之上创建一个名叫”拍照功
能”的分支,这种分支只会属于你自己,而其他人看不到,等代码编写完成后再与原来的项目主分支合并下即可,这
样即能保证代码不丢失,又不影响其他人的工作。

image.png | left | 826x209

一般在实际的项目开发中,我们要尽量保证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

image.png | left | 826x506

  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

image.png | left | 727x500

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

image.png | left | 826x448

  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

image.png | left | 826x435

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

image.png | left | 826x541

合并分支

  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

image.png | left | 826x385

  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" >>
  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 "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 "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/
点击注册

image.png | left | 826x65

注册完成后添加新的项目

image.png | left | 712x273

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

image.png | left | 712x268

2.配置ssh‐key

添加一个密钥

image.png | left | 826x298

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.  
  24. [root@git ~]# cat .ssh/id_rsa.pub 
  25. ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCmv4aEEEpbUyzv1r6SN0JqOfeyQ7sZZbXxWFv4xflIJeK/rl8cF7UYCzjLEvwJlrkIjKSs5uW1x0zWEcZFiv5tGCiO7DeMR6pKUAn7NzNjKiCcElCXiqHVew84iTbxX4MWKlbFoJYO9/wQ1NlrQfqcSgZwJTLKBMVoMXvTWPPGXf6AwdSp68guFwwGDIV8BiHZiy61bKiWYSVKSDP47Y7VUV/bdwGaxG7tAfalWVpe6xXXRtsj58sENyIWbRI7/9XWqs+eV+CgI74YjOanMvHnHFlfg0tb+MewRb4tFGVmroFBRsvfI3Sl2fez2zHG0qh3f34/0KF1kitlWkgcBJqN root@git

image.png | left | 826x334

3.创建项目

image.png | left | 826x449

4.克隆项目到本地

image.png | left | 826x604

  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网页查看

image.png | left | 826x319

  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]#
 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号