Git代码仓库

  • Post author:
  • Post category:其他




一、安装与常用命令



(一)安装配置

  1. 安装Git
  2. 设置用户名和email地址,每次提交都会使用该用户的信息(必做)。
git config --global user.name "fn"
git config --global user.email "邮箱"

查看配置信息

git config --global user.name
git config --global user.email
  1. 可以为常用命令设置别名

    A. 打开用户目录(如windows的

    C:\Users\

    ),创建

    .bashrc

    文件

    B. 可能系统不允许用户创建点开头的文件,这时可以在git命令行创建

    touch ~/.bashrc


    C.

    .bashrc

    的内容,例子如下:
alias git-log='git log --pretty=oneline --all --graph --abbrev-commit'
alias ll='ls -al'
  1. 如果要输入中文,可能有乱码问题,解决如下:

    A. 打开命令行执行

    git config --global core.quotepath false


    B.

    git安装目录/etc/bash.bashrc

    文件最后加入下面两行
export LANG="zh_CN.UTF-8"
export LC_ALL="zh_CN.UTF-8"



(二)获取本地仓库

要使用Git进行版本控制,首先就要

获得本地仓库


A. 在任意路径下创建一个空目录,

作为本地Git仓库


B. 进入目录,在目录中打开Git bash

C. 执行

git init


D. 执行成功会有一个隐藏的

.git

目录



(三)基础操作命令

git add:从工作区 –> 暂存区

git commit 从暂存区 –> 本地仓库

在这里插入图片描述

首先新建一个文件后


  1. git status

    查看修改的文件状态,如刚新建文件时的状态.

    在这里插入图片描述

  2. git add .

    将当前工作区(目录)的所有文件

    添加到暂存区

    ;也可以

    git add test.txt


    提交指定文件到暂存区



    在这里插入图片描述

  3. git commit -m "说明"

    暂存区>>仓库

    在这里插入图片描述
  4. 使用

    git log [option]

    可以看见提交记录。

  • --all

    显示所有分支

  • --pretty=oneline

    将提交信息显示为一行

  • --abbrev-commit

    输出更短的commit的id

  • --graph

    以图的形式显示

    一般使用时这些参数都会加上,

    git log --all --pretty=oneline --abbrev-commit --graph

    ,这时命令很长,就可以通过设置别名的方式解决问题。



(1)版本回退(版本切换)


git reset --hard commitId

可以跳转到ID对应的版本。

比如:新建了一个文件,提交;然后在文件中加了内容,再提交。这时就有两个commit

在这里插入图片描述

如果想回到未加内容的版本,就

git reset --hard ab87d8f




git reflog

查看历史记录,如果想再回到修改版本,就需要推断出修改版本的commitId(因为回退了,git log查看不到对应的id了)



(2)设置某些文件不参与提交Git

  1. 新建一个

    .gitignore

    文件。
  2. 在文件中写要忽略的文件名(可以用模糊匹配)

    在这里插入图片描述



(四)分支

分支可以把工作从

开发主线

上分离开来进行

重大Bug修改、开发新功能



以免影响开发主线



(1)基本命令

  1. 查看本地分支

    git branch
  2. 创建新分支

    git branch 分支名

  3. 切换分支


    git checkout 分支名


    可以直接切换到一个不存在的分支(创建并切换)

    git checkout -b 分支名

  4. 合并分支


    git merge 指定分支名


    将指定分支合并到当前分支,一般是站在

    master

    上合并其他分支。
  5. 删除分支


    git branch -d 分支名

    删除分支时,需要做各种检查


    git branch -D 分支名

    不做任何检查,强制删除(小d删不了,就用大D)

  6. 解决合并冲突


    产生原因:在两个分支上同时修改了同一文件的同一行(如果不是同一行,git会自动合并内容),这时合并分支就会报分支合并失败。

    处理步骤:

    A. 处理文件冲突的地方(打开冲突文件,git会有提示)。

    B. 将解决完冲突的文件加入暂存区并提交。

    在这里插入图片描述



(2)开发中分支使用原则与流程

在这里插入图片描述

在这里插入图片描述


视频讲解



二、Git远程仓库



(一)基本命令

  1. 可以为远程库创建别名


    git remote -v

    查看当前创建的别名


    git remote add 别名名称 https://XXX远程仓库的url

    创建别名


    git remote set-url 别名名称 URL

    修改别名
区别 push clone
https 需要验证用户名密码(就算配置了SSH也要) 随意克隆任何项目
ssh 配置了SSH就直接push,不需要验证(除非设置了SSH密码) 必须是该项目的拥有者(在GitHub配置了SSH的)

  1. Push推送

    到远程仓库


    git push 别名/仓库URL 分支名



    遇到问题

    :GitHub不再支持密码凭证Push。

    解决办法:(注:也可以配置SSH,更方便)

    A. 进入GitHub得到Token。

    B. 修改远程仓库别名,将token加进去


    git remote set-url 别名名称 https://Token@github.com/账户名/仓库名.git


    eg:

    git remote set url test01 https://XXXXXX@github.com/Fu_nan/git_test01.git


    C. 再执行Push


    方法链接


  2. Fetch抓取

    远程仓库


    git fetch [remote name] [branch name]


    A. 不指定别名和分支名,则抓取所有分支。

    B.

    抓取就是将远程仓库的更新都抓取到本地,不会进行合并


  3. Pull拉取

    远程仓库


    git pull 别名/仓库URL 分支名


    A. 当本地仓库和远程仓库内容不一致时,想要远程仓库的内容,就需要拉取。

    B. 不指定别名和分支名,则拉取所有分支并更新当前分支。

    C.

    拉取就是将远程仓库的修改拉到本地并自动进行合并,等同于fetch+merge


遇到问题

:报错10054和Timed out

解决办法:

====================================

解决10054问题

git config –global http.sslVerify “false”

git config –global https.sslVerify “false”

====================================

解决Timed out问题

git config –global –unset http.proxy

git config –global –unset https.proxy


  1. Clone克隆

    远程仓库

    git clone 仓库URL


    Clone后会有三个操作:1、拉取代码 2、初始化本地仓库 3、创建别名(自动创建链接的别名)


合并冲突


在这里插入图片描述



(二)团队协作

甲:仓库创建者 乙:需要协同开发

甲:点进项目>>Settings>>Collaborators>>Add people>>对方的username or email>>邀请后Pending Invite复制邀请链接发送给乙。

乙:复制链接到浏览器>>Accept invitation接受邀请,乙就加入了开发,可以Push内容到仓库了。


另一个跨团队协作



(三)SSH免密登录



  1. 用户目录

    下生成

    .ssh

    目录

    ssh-keygen -t rsa -C email

    ,全点回车。
  2. 复制公钥(.pub)>>GitHub的Settings>>SSH and GPG keys>>New SSH key

  3. ssh -T git@github.com

    测试是否配置成功

    设置SSH后,就可以不用Token的方式去操作仓库,更方便。



三、在Idea中使用Git



(一)配置Git

Idea会自动寻找Git的安装位置,点击Test可以测试是否有效;

如果没有自动寻找到就自行指定Git的位置(精确到git.exe)

在这里插入图片描述



(二)操作Git

  1. 在GitHub创建远程仓库
  2. Idea中初始化本地仓库并提交到远程仓库

    A. 新建

    .gitignore

    ,加入

    .idea

    等不需要被管理的文件。(.gitignore一般都是通用的,如下)
# Created by .ignore support plugin
### Java template
*.class

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

# Package Files #
*.jar
*.war
*.ear
*.zip

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

.idea

*.iml


*.bak
*.class
*.rar
*.log
.project
.settings
.classpath
target
classes
lib
*.DS_Store
.gradle
build
out
log

B. 初始化本地仓库

在这里插入图片描述

在这里插入图片描述

C. 提交到本地仓库(中间可能有弹窗,确定就行)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

D. 提交到远程仓库

在这里插入图片描述

在这里插入图片描述

3. 克隆远程仓库Git>>Clone…

在这里插入图片描述

4. Push冲突。

多人协同开发时,无论任何时候想要Push时首先Pull,然后再Commit并Push


如果有提交冲突,Idea会有提示,通过图形化界面就可以解决。



(三)分支

在这里插入图片描述

在这里插入图片描述



四、注意事项

  1. 切换分支前先提交本地的修改
  2. 代码及时提交,提交了就不会丢
  3. 谨慎删除文件目录

    在这里插入图片描述



五、GitHub



(一)同时使用GitHub和GitLab


参考文章1



参考文章2

对于以上两个参考文章,遇到的坑:

在这里插入图片描述

在这里插入图片描述