git学习第一天

git的学习

#学习笔记/编程/git

git 和svn的区别

svn 集中管理工具

  1. 每一个客户机和svn服务器交互
  2. 服务器单点故障(少有的缺点)
  3. 适用于局域网内

git分布式管理工具

  1. 每个开发人员都有一个版本库(本地仓库开发)
  2. 远程仓库(共享版本库)

git 工作流程

  1. 从远程仓库克隆git资源作为本地仓库
  2. 从本地仓库中checkout 代码然后进行代码修改
  3. 提交前将代码提交到暂存区
  4. 提交修改。本地仓库保存修改的各个历史版本
  5. 修改完成后将代码push到远程仓库

创建版本库

.git 本地仓库,包含.git 称为工作目录
可以使用git命令和git-gui把一个本地文件夹变为版本库。

推送到远程仓库

  1. https协议推送
  2. ssh协议推送

ssh协议

推荐使用基于密钥的验证方式
为自己创建一对密钥,把公用密钥放在需要访问的服务器上,如果你要连接到ssh服务器上,客户端软件就会向服务器发出请求,请求用你的密钥进行安全验证。服务器收到请求之后,先在该服务器上你的主目录寻找你的公用密钥,然后把它和你发送过来的公用密钥进行比较。如果两个密钥一直,服务器就用公用密钥进行比较,如果一致,服务器用公用密钥加密查询并把它发送给客户端软件,客户端软件收到查询后可以用私人密钥解密后再发送到服务器。

ssh方式推送仓库

使用前在github配置公匙

生成ssh密钥

ssh-keygen -t rsa
会生成 id_rsa(私钥) 和 id_rsa.pub 密钥对
上传公钥到github

git remote add origin ssh地址
git push -u origin master

搭建私有git服务器

  1. 安装git服务 apt install git
  2. 创建新用户来管理git仓库
  3. 创建git仓库 并且把管理者变成新创建的git用户
[root@admin home]# mkdir -p ./git/repository/gittest.git       
[root@admin home]# ls     #查看/home/目录下有哪些用户目录
[root@admin home]# cd git                #进入git用户目录
[root@admin git]# ls                     #查看git用户目录下有哪些
[root@admin git]# cd repository/         #进入repository仓库目录
[root@admin repository]# ls              #查看仓库目录下的项目目录
gittest.git
[root@admin repository]# git init --bare ./gittest.git      #这步很重要,初始化项目测试目录
Initialized empty Git repository in /home/git/repository/gittest.git/
然后把 Git 仓库的 owner 修改为 git
[root@admin git]# ll            #查看gittest.git项目文件夹的拥有者
total 4
drwxr-xr-x 3 root root 4096 Jan 13 13:08 repository         #拥有者是root用户名
[root@admin git]# chown -R git:git repository  #将拥有者改为git用户
[root@admin git]# ll         #再次查看gittest.git项目文件夹的拥有者
total 4
drwxr-xr-x 3 git git 4096 Jan 13 13:08 repository        #拥有者是git用户
  1. 通过ssh的方式连接远程仓库

分支

每次提交git都会串成一条时间线,时间线就是一个分支。主分支称为master分支。head指针指向master,master指针指向提交。再用head指向master,就能确定当前分支,以及当前分支的提交点。

创建新的分支 比如 test,git会新建一个test指针,指向master相同的提交,再把head指针指向test,表示当前分支在test上,下一个提交修改会在test分支上修改。

你可能感兴趣的:(java学习,java)