1.概览:

1.1.本文编写中心主题以及内容

  • Git学习总结

1.2.本文编写目的

  • 总结Git知识, 分享自己对Git的理解与操作

2.理解

两个人只有相识,相知,最后才能相爱,所以我们首先来和Git互相了解一下.

2.1.Git是什么?

  • 百度百科: 是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理
  • 于我而言: 与Svn类似,Git就是一个项目管理工具而已, 用于管理项目代码,项目分支,项目版本,项目资料,方便协同开发

2.3.为什么要用Git, 为什么不用SVN?

Svn其实也可以做项目管理,而且我最先接触的就是Svn,用的时间最多的也是Svn,但是我还是抛弃了Svn,拥抱了Git,这必定是有原因的,不说什么底层实现,什么底层算法这些花里胡哨的东西,我用Git实实在在的原因就两点:

  • Git是分布式的,Svn非分布式;
    (用过Svn的应该都知道,Svn有一个服务端部署在远程服务器,而每个开发人员本地则是一个客户端,客户端的什么提交更新操作都是基于远程服务端的,如果服务端挂了或者无网络是无法进行提交更新等操作的; Git就不一样了,首先Git有一个远程服务端,如果要把本地的项目上传至远程服务端的话,得在本地创建一个该项目得仓库,而这个本地仓库就可视为一个服务端,代码提交需要提交至本地仓库,再由本地push到远程服务端,因为有本地仓库得缘故,所以即使远程服务端挂了,也能进行提交更新等操作,Git的分布式就体现在这里)

  • GitHub, GitLab支持Git,不支持Svn


2.3.Git & GitHub & GitLab .

如果要学习Git,那么就有必要知道GitHub和GitLab

  • GitHub是一个支持Git版本控制的免费的开源代码托管平台,可视为一个Git远程服务端,GitHub也是世界上最大的开源代码托管平台,这意味着我们可以很便捷的在GitHub浏览世界有名开源项目的源码,比如说apache相关的源码,spring相关的源码,真的是非常好用。我记得我之前上传一个maven的项目到GitHub,GitHub居然指出了我引入的spring-security依赖的安全隐患,还说明了这个Bug存在于哪个版本,在哪个版本修复了,当时就感觉这个GitHub真不错;它的功能其实还有很多,我就不一 一列举了.
    Git学习总结(入门使用)

  • GitLab是一个用于仓库管理系统的开源Web项目,使用Git作为代码管理工具,与GitHub类似,是一个Git远程服务端;远程服务端不是有GitHub吗?为什么要用GitLab,因为GitHub大多用于开源项目和个人使用,公司的一些隐私的项目不可能托管到GitHub上去,应当是自己保管,自己维护,而GitHub本身就是开源的,所以可以在自己的服务器上部署一个私有的GitLab. 我们公司就是复制了一个GitLab作为项目远程服务端.
    Git学习总结(入门使用)


3.操作

3.1.本地安装Git

官网地址下载安装即可 https://git-scm.com/
Git学习总结(入门使用)


3.2.注册GitHub || GitLab

GitHub官网地址 https://github.com/
GitLab官网地址 https://about.gitlab.com/

3.3.Git使用途径

  • (注: Git安装成功后,自带Git Bash Here & Git GUI Here)

  • 可在Git Bash Here输入指令使用Git
    Git学习总结(入门使用)

  • 可在CMD命令行输入指令使用Git
    Git学习总结(入门使用)

  • 可在Git GUI Here进行可视化操作
    Git学习总结(入门使用)
    Create New Repository 创建一个本地仓库
    Clone Existing Repository Clone已存在的远程仓库
    Open Existing Repository 打开本地已存在的仓库

  • 各类前端(VS Code…)后端(Eclipse,Idea…)编译器集成Git后进行可视化操作
    Git学习总结(入门使用)

  • 直接在GitHub || GitLab 进行相关Git操作

3.4.Git使用测试

Git使用: 以idea和指令为例

3.4.1.创建GitHub仓库

Git学习总结(入门使用)
Git学习总结(入门使用)

3.4.2.idea操作

3.4.2.1.idea集成Git

idea集成Git
Git学习总结(入门使用)

idea登录GitHub
Git学习总结(入门使用)

3.4.2.2.创建本地仓库

Git学习总结(入门使用)
选择一个目录创建本地仓库,选择当前项目目录即可
Git学习总结(入门使用)

3.4.2.3.提交代码至本地仓库

创建成功后,项目即可进行提交更新等操作
Git学习总结(入门使用)
友情提示:
1.提交代码之前一定要先进行更新
2.提交代码之前一定要写好提交日志(Commit Message)
Git学习总结(入门使用)

3.4.2.4.本地仓库push到远程仓库

Git学习总结(入门使用)
Git学习总结(入门使用)
使用GitHub仓库地址新建Remote(远程仓库)
Git学习总结(入门使用)
Git学习总结(入门使用)
第一次本地仓库push到远程仓库可能会报一个异常:
Push rejected: Push to origin/master was rejected
根据前人描述,这是由于本地仓库与初始化远程仓库无关联导致;
Git学习总结(入门使用)
在当前目录拉取一下远程分支即可:
git pull origin master --allow-unrelated-histories
git pull origin master
Git学习总结(入门使用)
push成功后可在GitHub查看
Git学习总结(入门使用)

3.4.3.指令操作

首先在一个目录打开Git Bash

3.4.3.1.创建本地仓库

指令说明如图:

KTOP-4I5 MINGW64 /e/E/Git
$ mkdir local

KTOP-TFI5 MINGW64 /e/E/Git
$ ls
local/

KTOP-TF5 MINGW64 /e/E/Git
$ cd local/

KTOP-TFNCI5 MINGW64 /e/E/Git/local
$ git init
Initialized empty Git repository in E:/E/Git/local/.git/

KTOP-TFNCI5 MINGW64 /e/E/Git/local (master)
$ git status
On branch master

No commits yet

nothing to commit (create/copy files and use "git add" to track)

Git学习总结(入门使用)

3.4.3.2.提交代码至本地仓库

指令说明如图:

KTOP-TFNC4I5 MINGW64 /e/E/Git/local (master)
$ touch README.md

KTOP-TFNC4I5 MINGW64 /e/E/Git/local (master)
$ ls
README.md

KTOP-I5 MINGW64 /e/E/Git/local (master)
$ git add README.md

KTOP-TFN4I5 MINGW64 /e/E/Git/local (master)
$ git commit -m "local"
[master (root-commit) 85f39b4] local
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 README.md

@DESKTO4I5 MINGW64 /e/E/Git/local (master)
$ git log
commit 85f39b46a4e79b1d2450131b3257a7d175dbb342 (HEAD -> master)
Author: 
Date:   Sat Apr 6 15:59:30 2019 +0800
local

Git学习总结(入门使用)

3.4.4.3.本地仓库push到远程仓库

$ git remote add origin https://github.com/ChinaYinMan/oss-server.git

Git学习总结(入门使用)

$ git push -u origin master

Git学习总结(入门使用)
我这里push的时候出现了一个错误,是因为push之前没有pull拉取代码,而且远程Git仓库和本地Git仓库的README.md文件冲突,使用–rebase参数拉取代码,删掉原来的文件,提交新的文件

$ git pull --rebase origin master

Git学习总结(入门使用)
Git学习总结(入门使用)

4.个人心得

我觉得在Git使用的过程中,主要注意一下分支间的操作,冲突,提交日志就完事了,另一个就是别没事乱改别人东西,即使要改也要提前沟通一下,避免冲突就好了.

不过代码的冲突我倒是没怎么遇到过,冲突多的反而是文档,我之前有个项目,因为团队各自负责的模块功能不一样,每个人都要编写自己负责模块的接口文档,当时用的是Svn同步文档,然后天天冲突,后来我都不敢提交了,捂脸~~

其实腾讯文档可以解决这个问题,腾讯文档可多人共享文档,在共享组当中,共享成员之间可以实时的看到各个成员在文档的各种操作,这就华丽优雅而又有内涵的避免了文档内容冲突,实乃居家旅行,工作生活必备之良药,捂脸~~ 捂脸~~

相关文章:

  • 2021-09-04
  • 2022-03-10
  • 2022-01-13
  • 2021-05-12
  • 2021-10-14
  • 2022-02-27
  • 2022-12-23
  • 2022-01-01
猜你喜欢
  • 2021-06-09
  • 2021-12-10
  • 2021-11-23
  • 2021-12-19
  • 2021-11-20
  • 2021-07-19
相关资源
相似解决方案