Git代码仓库

一、安装与常用命令

(一)安装配置

  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修改别名
区别pushclone
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

对于以上两个参考文章,遇到的坑:
在这里插入图片描述
在这里插入图片描述
测试连通:ssh -T git@域名orIP(不用带端口,会去config文件自动寻找)
自定义密钥文件名:ssh-keygen -t rsa -C “your email” -f id_rsa_centos,-f不带路径默认生成在桌面。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值