Git与GitHub\GitLab的介绍和使用

1.历史

写这篇文章前,首先要致敬大佬--------->  Linus  。2005年他用C语言编写了Git,主体程序开发完成只用了两周,一个月后大佬的Linux系统代码由Git管理。2008年,GitHub上线。

2.Git的优势

  • 大部分操作在本地完成
  • 完整性保证
  • 尽可能添加数据而不是删除或修改数据
  • 分支操作非常快捷流畅
  • 与Linux命令完美兼容

3.Git的安装

Git的下载地址   https://git-scm.com/

 

4.Git本地操作

4.1 打开终端Git Bash

4.2 Git本地初始化及其创建用户和邮箱

 

4.3 Git本地提交相关操作

git status	                               查看 所在分支/工作区/暂存区信息
git add  [fileName]	                       将新增或修改的文件添加到暂存区
git rm --cached fileName	               将新增的某个文件从暂存区移除
git commit [fileName] -m "我的注释"	       提交到本地库

 

4.4 Git本地前进后退版本相关操作

git log --oneline	        显示历史版本信息  hash值前7位--代码注释
git log --pretty=oneline	显示历史版本信息  hash值--代码注释
git reflog	                显示所有版本信息  hash值前7位--指针--状态--代码注释
git reset --hard hash值	    根据hash值回退或前进到这个版本
git reset --hard HEAD	    将已经add的文件全部回退,其实就是当前版本不作修改
git reset --hard HEAD^	    回退一个版本
git reset --hard HEAD~n	    回退n个版本

 

4.5 Git本地比较文件相关操作

4.6 Git本地分支相关操作

4.6.1 Git本地分支示意图

4.6.2 Git本地分支命令

 

5.Git工作原理

  • Git底层采用的是 SHA-1 算法,保证数据完整性;

  • 以文件变更列表的方式存储信息,这类系统将它们保存的信息看作是一组基本文件和每个文件随时间逐步累积的差异;

  • Git 把数据看作是小型文件系统的一组快照。每次提交更新时Git 都会对当前的全部文件制作一个快照并保存这个快照的索引。为了高效,如果文件没有修改,Git 不再重新存储该文件,而是只保留一个链接指向之前存储的文件。所以Git 的工作方式可以称之为快照流

  • Git分支管理的本质是创建和移动指针

到这里估计你肯定掌握本操作了,那么可以删除掉刚才的所有文件了,包括.git。

然后自己创建几个目录,我这里创建了3个

E:\zmjjobsGitWorkSpace 这个作为创建者使用

E:\zmj1314GitWorkSpace 这个作为成员使用

E:\zmj8888GitWorkSpace   这个作为外部组织使用          

下面的讲解从新开始。。。

6.Git与GitHub之间的操作

6.1 Git本地与外部代码托管中心GitHub交互图

6.2 Git与GitHub间操作详细步骤

注册账号很简单,我就不介绍了。官网地址:https://github.com/

6.2.1 GitHub修改profile

6.2.2 GitHub创建新项目

git remote add origin 远端git地址      给远端git地址起一个别名叫origin
git remote -v                         显示远端地址与别名
git push [-u] origin master             将代码推送到远端

 

 

6.2.3 Git成员用户操作

如果有邀请,一般会有邮箱提醒。如果没有可以直接找创建者要邀请链接也可以

 

git fetch [远程库地址别名] [远程分支名]   抓取远端代码
git merge [远程库地址别名/远程分支名]     合并远端代码
git pull [远程库地址别名] [远程分支名]    拉取远端代码,相当于git fetch + git merge
git push [远程库地址别名] [远程分支名]    推送代码到远端

6.2.3 Git成员与成员间的操作

6.2.4 Git内部与外部组织的操作

6.2.4 Git SSH免密操作(如果操作系统支持自动免密就不用管了)

7. Eclipse使用Git

7.1 Eclipse的Git本地化

选中工程>右键>Team>Share Project>Git>>>

7.2 Eclipse的Git忽略文件

文件操作跟命令差不多,不介绍了,一看就会。这里主要说下Java语言的忽略文件。

首先在 .gitconfig文件加入内容,也就是指定忽略文件的地址,注意路径里面一定要使用 /

[core]
    excludesfile = C:/Users/Administrator/Java.gitignore

新建一个文件Java.gitignore,然后将Eclipse的Navigator视图打开,加入自己想忽略的文件或目录即可,当然别忘了重启Eclipse。参考网址  https://github.com/github/gitignore

# Compiled class file
*.class

# Log file
*.log

# BlueJ files
*.ctxt

# Mobile Tools for Java (J2ME)
.mtj.tmp/

# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar

# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*

.classpath
.project
.settings
target

7.3 Eclipse的Git工作流

7.3.1 模拟工作状态

  • 工程>右键>Team>Switch to>New branch>

  • 分支修改好文件后,推送到远端分支。如果成功后,远端分支会看到内容。

  • master合并hotfix分支,如果是在本地则选择本地也可。如果是其他人修改,或者本地没有了,则合并远端分支

8. GitLab

这里以Centos7为例

8.1 下载Gitlab的rpm包

cd /opt/
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.8.2-ce.0.el7.x86_64.rpm

8.2 执行安装Gitlab

新建一个叫install_gitlab.sh的脚本,脚本内容为

sudo rpm -ivh /opt/gitlab-ce-10.8.2-ce.0.el7.x86_64.rpm
sudo yum install -y curl policycoreutils-python openssh-server cronie
sudo lokkit -s http -s ssh
sudo yum install postfix
sudo service postfix start
sudo chkconfig postfix on
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
sudo EXTERNAL_URL="http://gitlab.example.com" yum -y install gitlab-ce

然后执行命令,安装时间相当于我喝了一大杯的热水。

chmod 755 install_gitlab.sh
./install_gitlab.sh
reboot

重启完毕后,开始初始化和启动服务。初始化时间有点长啊,我吃了个夜宵回来才装完!

gitlab-ctl reconfigure
gitlab-ctl start

8.3 页面访问Gitlab

输入服务器的IP地址访问即可。如果不能访问,请检查防火墙和配置信息

配置文件是 /etc/gitlab/gitlab.rb

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章