感谢尚硅谷提供的免费课程资源,让我们来进行git知识的学习吧。
集中式版本控制工具
CVS、SVN(Subversion)、VSS……
分布式版本控制工具
Git、Mercurial、Bazaar、Darcs……
②代码托管中心
代码托管中心负责维护远程库,让团队成员可以彼此协作。
Gitlab:如果有特殊需求不能使用外网的代码托管中心,可以在局域网内搭建自己的代码托管中心服务器。
GitHub:国外网站,有非常多优秀的开源项目托管代码,但是从国内访问很慢。
码云:国内的代码托管中心,在国内互联网开发圈子中的地位举足轻重。
高速下载链接:https://registry.npmmirror.com/binary.html?path=git-for-windows/
命令名称 | 作用 |
---|---|
git config --global user.name 用户名 | 设置用户签名(查看谁提交的代码,必须首先设置) |
git config --global user.email 邮箱 | 设置用户签名 |
git init | 初始化本地库 |
git status | 查看本地库状态 |
git add 文件名 | 添加到暂存区 |
git commit -m"日志信息" 文件名 | 提交到本地库 |
git reflog | 查看版本信息 |
git log | 查看版本详细信息 |
git reset --hard 版本号 | 版本穿梭 |
git branch 分支名 | 创建分支 |
git branch -v | 查看分支 |
git checkout 分支名 | 切换分支 |
git merge 分支名 | 把指定的分支合并到当前分支上 |
git remote -v | 查看当前所有远程地址别名 |
git remote add 别名 远程地址 | 起别名 |
git push 别名 分支 | 推送本地分支上的内容到远程仓库 |
git clone 远程地址 | 将远程仓库的内容克隆到本地 |
git pull 远程库地址别名 远程分支名 | 将远程仓库对于分支最新内容拉下来后与当前本地分支直接合并 |
在版本控制过程中,同时推进多个任务,为每个任务,我们就可以创建每个任务的单独
分支。使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己分支的时
候,不会影响主线分支的运行。对于初学者而言,分支可以简单理解为副本,一个分支就是
一个单独的副本。(分支底层其实也是指针的引用)
命令名称 | 作用 |
---|---|
git branch 分支名 | 创建分支 |
git branch -v | 查看分支 |
git checkout 分支名 | 切换分支 |
git merge 分支名 | 把指定的分支合并到当前分支上 |
- 编辑有冲突的文件,删除特殊符号,决定要使用的内容
特殊符号:
:<<<<<<< HEAD 当前分支的代码 ======= 合并过来的代码 >>>>>>> hot-fix hello git!- 添加到暂存区
- 执行提交(注意:此时使用git commit 命令时不能带文件名)
master、hot-fix 其实都是指向具体版本记录的指针。当前所在的分支,其实是由HEAD
决定的。所以创建分支的本质就是多创建一个指针。
HEAD 如果指向master,那么我们现在就在master 分支上。
HEAD 如果执行hotfix,那么我们现在就在hotfix 分支上。
命令名称 | 作用 |
---|---|
git remote -v | 查看当前所有远程地址别名 |
git remote add 别名 远程地址 | 起别名 |
git push 别名 分支 | 推送本地分支上的内容到远程仓库 |
git clone 远程地址 | 将远程仓库的内容克隆到本地 |
git pull 远程库地址别名 远程分支名 | 将远程仓库对于分支最新内容拉下来后与当前本地分支直接合并 |
没有进入团队之前,只能克隆,不需要权限。但是假如我们需要进行提交自己更改的版本,那么就需要我们在此之前加入团队,这样才可以进行后续操作。
复制内容如下:https://github.com/atguiguyueyue/git-shTest/invitations
我们可以看到远程仓库中还有一个SSH的地址,因此我们也可以使用SSH进行访问。
具体操作如下:
--进入当前用户的家目录
Layne@LAPTOP-Layne MINGW64 /d/Git-Space/SH0720 (master)
$ cd
--删除.ssh目录
$ rm -rvf .ssh removed '.ssh/known_hosts'
--运行命令生成.ssh秘钥目录[注意:这里-C这个参数是大写的C
$ ssh-keygen -t rsa -C atguiguyueyue@aliyun.com
复制id_rsa.pub文件内容,登录GitHub,点击用户头像→Settings→SSH and GPG keys
因为如果我们使用https这个链接的话,每次发布的时候都需要进行登录。但是我们使用ssh登录之后就不需要了。
有些文件与项目部署没有关系。比如说下图中的,所以我们设置一个忽略文件模板来提交推送的时候忽略这些文件。
与项目的实际功能无关,不参与服务器上部署运行。把它们忽略掉能够屏蔽 IDE工具之
间的差异。
git.ignore文件 模板
# 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
.idea
*.iml
[core]
excludesfile = C:/Users/hxld/git.ignore
注意:这里要使用“正斜线( (//)”,不要使用“反斜线
在IDEA窗口的右下角,将 hot-fix分支合并到当前 master分支。
注意错误:
解决上传到github报错Successfully created project ‘GitTest’ on GitHub, but initial push failed
通过IDEA上传代码到GitHub上可是有时候会碰到这样的问题。
当我们选择VCS->Import into Version Control->Share Project on GitHub提交代码。点击OK。然后就跳出了这样的信息:
Can’t finish GitHub sharing process
Successfully created project ‘GitTest’ on GitHub, but initial push failed:
unable to access ‘https://github.com/Prize-winner/GitTest.git/’: The requested URL returned error: 403
原来是github没有配置的原因,解决办法如下。
注意因为网络的问题,当我们设置了ssh免密登录之后,我们可以设置使用ssh免密登录进行github操作。(IDEA默认使用的是https协议)。
点击首页右上角的加号,选择下面的新建仓库。
注意目前gitee已经不支持直接设置为公开了,设置为公开需要在创建仓库后而且仓库不为空的状态下才可以设置为开源。
Idea连 接码云和 连 接 GitHub几乎一样,首先在 Idea里面创建一个工程,初始化 git工
程,然后将代码添加到暂存区,提交到本地库 ,这些步骤上面已经讲过,此处不再赘述。
码云提供了直接复制GitHub项目的功能,方便我们做项目的迁移和下载。
centos7 + 内存4GB+储存50GB
关闭防火墙,并且 配置好 主机名和 IP,保证服务器可以上网。
在外部访问CentOS中部署应用时,需要关闭防火墙。
关闭防火墙命令:systemctl stop firewalld.service
开启防火墙:systemctl start firewalld.service
关闭开机自启动:systemctl disable firewalld.service
开启开机启动:systemctl enable firewalld.service
配置好主机名和Ip。
linux查看本机ip的命令是“ifconfig”命令和“ip address”命令;
linux查看端口号的命令是“lsof -i:port”命令和“netstat -aptn”命令。
ip地址:192.168.119.131
使用xshell登录linux服务器
使用linux命令创建/opt/module目录,我们要将gitlab安装包放到此目录下并安装。
在xshell中利用xftp进行文件传输。将安装包放到/opt/module目录下。
现在目录下就有了。
sudo rpm -ivh /opt/module/gitlab-ce-13.10.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 -y 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
修改Hosts文件:
在【安全】中选中【编辑】,之后选择【Users】,将【修改】和【写入】后面允许的√打上,之后点击【确定】;
登录有两种方式。
使用主机名或者IP地址即可访问 GitLab服务 。 需要提前 配一下 windows的 hosts文件。
注意:我自己使用主机名或者ip地址没有登录上去。