Git初识

多人开发就必须使用版本控制,不然代价太大,Git就是版本控制器的主流产品之一

杂谈

Git和SVN最主要的区别

SVN

  • 是集中式的版本控制系统,库版本集中放在中央服务器

  • 工作的时候用自己的电脑从中央服务器得到最新版本

  • 完成工作后提交到中央服务器

  • 必须联网工作

GIT

  • 是分布式的版本控制系统,每一个人都是一个完整的版本库(怕拿走代码跑路)

  • 不需要联网工作

安装

git官网下载速度慢,可以选择国内的淘宝镜像下载很快

移动到页面的最下面下载最新版之后,选择对应的版本

image-20200722165426282

剩下的一路next安装

image-20200722170105675

安装好之后,在开始中就存在以下三个程序

  • Git Bash:Unix和linux风格的命令行,推荐使用
  • Git CMD:windows分割的命令行
  • Git GUI:图形化界面,不建议使用

linux命令

基本的linux命令

command introduce
cd 改变目录
cd .. 返回上级
clear 清屏
pwd 显示当前所在的目录路径
touch 新建文件 touch index.js
rm 删除文件 rm index.js
mkdir 新建一个目录
rm -r 删除一个文件夹 rm -r src
mv mv index.html test将index.html移动到test目录(起初index.html,test同级)
history 查看历史的命令
help 帮助
exit 退出
# 注释

Git配置

#查看配置
git config -l
 
#查看不同级别的配置文件 (系统级)
git config --system --list

#查看当前用户(gobal)配置 (全局)
git config --global --list

所有的配置文件都保存在本地

  1. E:\Git\etc Git安装目录下的gitconfig文件 系统级
  2. C:\Users\10134 .getconfig全局级

设置用户名与邮箱

当你安装Git后首先需要做的事情是设置你的用户名和邮箱。因为每次Git提交都会使用该信息。他会被永远的嵌入到你的提交中

git config --global user.name "hellodz"
git config --global user.email "111@qq.com"

Git基本理论(核心)

Git本地有三个工作区域

image-20200723070209233

  • Workspace:工作区就是你平时存放项目代码的地方

  • Index/Stage:暂存区,用于临时存放你的改动,实际上,他只是一个文件

  • Repository:仓库区,就是安全存放数据的位置,这是你提交所有版本的数据

  • Remote:远程仓库,托管代码的服务器

Git项目搭建

克隆远程仓库

git clone [url]

Git文件操作

忽略文件

有时候我们不想将某些文件纳入版本控制中,比如数据库文件,临时文件,设计文件等等

在主目录下,建立.gitignore 文件,此文件有如下规则

  • 忽略文件中空行或以井号(#)开始的行将会被忽略
  • 可以使用Linux通配符,例如:(*)代表任意多个字符,问号(?)代表一个字符,方括号[abc]代表可选择字符,大括号({string1,string2...})代表可选的字符串等
  • 如果名称的最前面有一个感叹号(!)表示例外不被忽略
  • 如果名称的最前面有一个路径分隔符(/),表示要忽略的文件在此目录下,而子目录中的文件不忽略
  • 如果名称的最后面有一个路径分隔符(/),表示要忽略的是此目录下该名称的子目录,而非文件
#注释
*.txt	#忽略所有.txt结尾的文件
!lib.txt	#但lib.txt除外
/temp	#仅忽略项目根目录下的TODO文件,但是不包括其他目录的temp
build/	#忽略build/目录下的所有文件
doc/*.txt	#会忽略doc/a.txt	不会忽略doc/temp/a.txt

使用码云

  1. 登录

  2. 查看是否已经生成了秘钥

    1. 输入:cd ~/.ssh
    2. 然后输入ls查看秘钥列表:

      如上图是已经配置过了就无需配置。如果没有看到id_ras.pub文件即没有配置,然后请看下面如何配置。
    3. 同上打开Git Base Here然后输入下面命令
      输入命令:cd ~
      然后输入:ssh-keygen.exe
      然后按回车,再次按回车,在回车,按三次回车:

      然后找到上面目录对应的这个id_rsa.pub公钥这个文件打开,用记事本打开或者别的打开都可以,复制里面的内容
  3. 码云中配置公钥
    image-20200723074418724

4。使用tortoisegit管理仓库 私钥转换成putty格式
使用tortoisegit,可以在windows下面可视化进行代码库操作。
首先安装tortoisegit,下载地址: https://tortoisegit.org/download/
在Tortoise的bin文件夹中,找到puttygen.exe。

点击load,载入私钥rsa(注意选择一下所有文件),然后点击save private key即可。

  1. 在Tortoise中载入私钥

卸载

如果你之后想卸载,只需两步即可。

  1. 删除环境变量
  2. 卸载exe

Git常见问题

问:首先,两个同事写的是同一个控制器的接口。

同事A代码写好了,还没有提交到远程仓库,但是,同事B写好了代码提交到了远程仓库
这时同事A想进行提交了,执行add,pull,commit,push
问:同事A在pull提交代码的时候会出错吗,为什么?

答:两个人写了同一个地方,第二个人在push的时候,会发生版本冲突

需要合并,即同事A需要先改成之前的版本,然后pull,再改代码,再commit,push。

企业开发中使用Git

拉取项目

git clone <repo>

拉取最新代码

git pull

但是,github如果没有克隆,可以将链接复制到下方链接,然后进行下载。

https://gitclone.com/

本地开发

直接提交代码,是会直接影响主分支的

为了保证线上项目的稳定性,我们要保护主分支,不能多人在主分支上进行开发

每个程序员在开发时,有属于自己的分支。

分支规范:

  1. 每一个开发者一个独立分支

  2. 每一个需求一个分支,粒度更细

创建分支

git checkout -b <branch-name>

查看当前分支的状态

git status

分支相关

1.git branch 列出所有本地分支
2.git branch <branch-name> 新建一个分支,但依然停留在当前分支
3.git checkout <branch-name> 切换到指定分支,并更新工作区
4.git checkout -b <branch-name> 新建一个分支,并切换到该分支
5.git branch -d <branch-name> 删除分支
6.git branch -D <branch-name> 删除未合并的分支
7.git checkout --orphan gh-pages 创建一个全新的分支,不包含原分支的提交历史,Gihthub项目主页分支用这个
8.git merge [branch] 合并指定分支到当前分支

提交代码

添加本次修改

git add .

遵循提交规范,需要在提交时填写一些信息,来说明本次修改做了哪些事情

add xxx
uopdate xxx
rm xxx

代码提交

git commit -m '提交第一个测试'

如果提交的时候,发现报错,需要先设置一下 user.emailuser.name,设置好之后,可以在本地文件.gitconfig中看到

image-20210301082428160

提交到远程分支,只会影响当前分支,不会影响其他分支

git push --set-upstream origin <branch-name>

分支合并(主分支和自己的分支)

在界面中的 pull request中进行

posted @ 2020-07-23 08:11  DJ同学  阅读(204)  评论(0编辑  收藏  举报