Git 简单学习笔记

文章目录

前言

一、Git

二、安装Git

1、下载与安装

1.1、基本配置

1.2、为常用指令配置别名

1.3、中文乱码

2、获取本地仓库

 3、基础操作指令

4、添加文件到忽略列表

5、简单练习

6、开发中的分支使用原则与流程

7、分支操作练习

三、远程仓库使用

3.1  gitee的使用

3.2  注册码云

3.3创建远程仓库

3.4 配置SSh公钥

3.5 操作远程仓库

3.5.1 添加远程仓库

3.5.2 查看远程仓库

3.5.3推送到远程仓库

3.5.4 从本地分支与远程分支的关联关系

3.5.5 从远程仓库克隆

3.5.6 从远程仓库中抓取和拉取

3.5.7 解决合并冲突

四、IDEA 操作GIT

4.1 IDEA 中配置  git

4.2 在 IDEA 中操作 Git

4.2.1 IDEA 创建git 仓库提交代码

 4.2.2 通过 IDE 克隆项目

 4.2.3 IDE 创建分支

4.2.4 IDE 解决代码冲突

4.2.5 版本回退

4.3  操作入口

4.4 IDEA 集成 GitBash 作为 Terminal

疑难杂症

1、乱码

总结

1、常用代码

 2、常用指令速查

3、养成好习惯

4、git 学习


前言

git 的基础学习,学习目标:

  • 了解Git基本概念
  • 能够概述git工作流程
  • 能够使用Git常用命令
  • 熟悉Git代码托管服务
  • 能够使用idea操作git


一、Git

       Git是分布式的,Git不需要有中心服务器,我们每台电脑拥有的东西都是一样的。我们使用Git并且有个中心服务器,仅仅是为了方便交换大家的修改,但是这个服务器的地位和我们每个人的PC是一样的。我们可以把它当做一个开发者的pc就可以就是为了大家代码容易交流不关机用的。没有它大家一样可以工作,只不过“交换”修改不方便而已。

二、安装Git

常用的 linux 命令

ls、ll 查看 当前目录

cat  查看文件内容

touch 创建文件

vi  vi 编辑器(使用vi 编辑器是为了方便展示效果)

1、下载与安装

Git - Downloads

安装完成:

  • Git GUI : Git 提供的图形界面工具
  • Git Bash : Git 提供的命令行工具

当安装Git后首先要做的事情是设置用户名称和email地址。这是非常重要的,因为每次Git提交都会使用该用户信息

1.1、基本配置

1、打开Git Bash

2、设置用户信息

git  config  --global   user.name"zhangsan"

git  config  --global  user.email '"emai@qq.com"

查看配置信息

git   config--global  user.name

git  config--global  user.email

# 2.查看git用户名、密码、邮箱的配置
$ git config user.name
$ git config user.password
$ git config user.email
 
 
# 3.设置git用户名、密码、邮箱的配置
$ git config user.name "you_username"
$ git config user.password "you_pwd"
$ git config user.email "123456@qq.com"
# 3.设置git用户名、密码、邮箱的配置(全局配置)
$ git config --global user.name 用户名
$ git config --global user.password 密码
$ git config --global user.email "123456@qq.com"

1.2、为常用指令配置别名

有些重用的指令参数非常多,每次都要输入好多参数,我们可以使用别名。

1、打开用户木兰路,创建.bashrc文件

 2、在.bashrc文件中如数如下内容

#用于输出git提交日志
alias git-log='git log --pretty=oneline --all --graph --abbrev-commit'
#用于输出当前目录所有文件及基本信息
alias ll='ls -al'

3、打开 gitBash,执行

source  ~/.bashrc

4、在以后的 git-log  中就可以看到

1.3、中文乱码

1.1 打开  gitBash 执行下面命令

git  config  --global  cor.quotepath   false

1.2、${git_home}/etc/bash.bashrc  文件最后加入下面两行

export   LANG="zh_CN.UTF-8"

export  LC_ALL="zh_CN.utf-8"

2、获取本地仓库

要使用Git 对我们的代码进行版本控制,首先需要获取得到本地仓库

1)在电脑的任意位置创建一个空目录作为我们的蹦迪Git仓库

2)进入牡蛎中,点击右键打开 git  bash 窗口

3)执行命令  git init

4)如果创建充公后可在文件夹下看到隐藏的.git 目录

 

 3、基础操作指令

Git 工作目录先对于文件的修改(增加、删除、更新)会存在几个状态,这些修改的状态会随着我们执行Git 的命令而发生变化

本章主要讲解如何使用命令来控制这些状态之间的转换:

1、git  add 文件名/.  (工作区--》暂存区)  文件名是添加指定文件,. 则是所有文件

2、git  conmmit (暂存区---》本地仓库)  git commit  -m '描述内容'

3、版本回退

指令作用命令说明
status查看修改状态(暂存区,工作区)git  status
add添加工作区一个或多个文件修改到暂存区

单个文件:git  add 单个文件名|通配符

所有文件:git  add  .

commit提交暂存区内容到蹦迪仓库的当前分支git  commit   -m   "描述内容"
log查看提交记录git   log  [option]

options:

        --all 显示所有分支

        --prettyoneline 将提交信息显示为一行

        --abbrev-commit 是的输出 commitId 更简短

        --graph 以图的形式显示        

reset  --hard  commitID版本回退git reset --hard commitID

commitID 可以使用git -log 或者git  log  指令查看

查看已经删除的记录

git   reflog

这个指令可以看到已经删除的提交记录

git  reflog查看已经删除的记录 git  reflog
git commit commit ID  --hard版本回退git commit commit ID  --hard
------------------------------------------------------------
git branch查看本地分支git  branch   -a查看所有分支
git  branch 创建分支名称git  branch 分支名称创建分支
git  checkout切换分支git checkout 分支名称

切换分支已经存在的分支

切换为主分支:

git  checkout  master

gti  checkout创建并切换到该分支git  checkout -b  分支名称切换到没有的分支
git  merge合并分支git  merge 分支名称合并分支
git  branch -d删除分支

git branch -d  b1删除分支,需要检查

git branch  -D b1 不做如何检查,强制删除

-d 删除需要做各种检查

-D不做如何检查,强制删除

---------------------------------------------------
git  remote add origin添加远程仓库git remote add orte  add origin +URlURL 是远程仓库链接
git  remote查看远程仓库git remote
git push [-f] [--set-upstream] [远端名称 [本地分支名][:远端分支名] ]推送到远程仓库git push【-f】【--set-upstream】【远端名称【本地分支名】【:远端分支名】】

-f 表示强制覆盖

--set-upstream 推送到远端的同时并且加你起和远端分支的关联关系。

;git push  --set-upstream origin master

如果当前分支已经和远端分支关联,则可以省略分支名和远端名。

git  push  等 master 分支推送到已关联的远端分支

git  branch -vv查看远端分支和本地分支关联关系git  branch  -vv
git  clone <仓库路径>克隆git  clone  <仓库路径> 【本地目录】本地目录可以省略
git fetch  【remote name】【branch name】抓取远端git fetch 【remote name】【branch name】抓取指令就是将仓库里的更新都转去到本地,不会进行合并
git  pull 【remote name】【branch name】拉取远端git  pull 【remote name】【branch name】

将全段仓库修改拉到本地进行合并,等同于 fetch + merge

remote name : origin

branch name :分支名称

4、添加文件到忽略列表 .gitignore

在工作目录中创建一个名为 .gitignore 的文件(文件名称固定),列出要忽略的文件模式。

在Git中,.gitignore文件用于指定哪些文件或文件夹不应该被Git跟踪。在工程中,并不是所有文件都需要保存到版本库中的,例如“target”目录及目录下的文件就可以忽略。在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件或文件夹 。

.gitignore文件可以放在应用程序的任何目录中并影响所有嵌套目录。它是一个纯文本文件,每行都可以包含一个匹配模式。

如果一行以“#”开头,则该行被视为注释并被Git忽略。

如果一行包含通配符“*”,则该行将匹配所有与通配符匹配的文件名。

如果一行包含“?”字符,则该字符将被视为任意一个字符 。

# 忽略文件结尾为.a的文件
*.a
# 忽略a 文件,但是跟踪a文件
!lib.a
# 仅忽略当前目录中的 TODO文件目录下的所有文件
/TODO
# 忽略build/目录中的所有文件
build/
# 忽略doc目录中 以  .txt 结尾的文件
doc/*.txt
# 忽略 doc/目录中的所有 .pdf文件
doc/**/*.pdf

5、简单练习

#####################仓库初始化######################
# 创建目录(git_test01)并在目录下打开gitbash
略
# 初始化git仓库
git init
#####################创建文件并提交#####################
# 目录下创建文件 file01.txt
略
# 将修改加入暂存区
git add .
# 将修改提交到本地仓库,提交记录内容为:commit 001
git commit -m 'commit 001'
# 查看日志
git log
####################修改文件并提交######################
# 修改file01的内容为:count=1
略
# 将修改加入暂存区
git add .
# # 将修改提交到本地仓库,提交记录内容为:update file01
git commit -m 'update file01'
# 查看日志
git log
# 以精简的方式显示提交记录
git-log
####################将最后一次修改还原##################
# 查看提交记录
git-log
# 找到倒数第2次提交的commitID
略
# 版本回退
git reset commitID --hard

6、开发中的分支使用原则与流程

  • master (生产)分支

        线上分支,主分支,中小规模项目作为线上运行的应用对应的分支;

  • develop  (开发) 分支

是从 master 创建的分支,一般作为开发部门的主要开发分支,如果没有其他并行开发不同期上线要求,都可以在此版本进行开发,阶段开发完成后,需要是合并到 master 分支,准备上线。

  • feature/xxxx分支

从develop 创建的分支,一般是同期并行开发,但不同期上线时创建的分支,分支上的研发任务完成后合并到 develop 分支

  • hotfix/xxxx分支

从master 派生的分支,一般作为线上  bug  修复使用,修复完成后需要合并到 master 、test、develop分支

还有一些其他分支,在此不再详述,例如  test 分支(用于代码测试)、pre分支(预上线分支)等等

7、分支操作练习

###########################创建并切换到dev01分支,在dev01分支提交
# [master]创建分支dev01
git branch dev01
# [master]切换到dev01
git checkout dev01
# [dev01]创建文件file02.txt
略
# [dev01]将修改加入暂存区并提交到仓库,提交记录内容为:add file02 on dev
git add .
git commit -m 'add file02 on dev'
# [dev01]以精简的方式显示提交记录
git-log
###########################切换到master分支,将dev01合并到master分支
# [dev01]切换到master分支
git checkout master
# [master]合并dev01到master分支
git merge dev01
# [master]以精简的方式显示提交记录
git-log
# [master]查看文件变化(目录下也出现了file02.txt)
略
##########################删除dev01分支
# [master]删除dev01分支
git branch -d dev01
# [master]以精简的方式显示提交记录
git-log

三、远程仓库使用

3.1  gitee的使用

前面我们已经知道了Git中存在两种类型的仓库,即本地仓库和远程仓库。那么我们如何搭建Git远程仓库
呢?我们可以借助互联网上提供的一些代码托管服务来实现,其中比较常用的有GitHub、码云、GitLab等。
gitHub( 地址:https://github.com/ )是一个面向开源及私有软件项目的托管平台,因为只支持
Git 作为唯一的版本库格式进行托管,故名gitHub
码云(地址: https://gitee.com/ )是国内的一个代码托管平台,由于服务器在国内,所以相比于
GitHub,码云速度会更快
GitLab (地址: https://about.gitlab.com/ )是一个用于仓库管理系统的开源项目,使用Git作GitLab最新版下载安装_GitLab中文免费版-极狐GitLab中文官方网站
为代码管理工具,并在此基础上搭建起来的web服务,一般用于在企业、学校等内部网络搭建git私服。

3.2  注册码云

要想使用码云的相关服务,需要注册账号(地址:注册 - Gitee.com

3.3创建远程仓库

创建完成  初始化

3.4 配置SSh公钥

生成 SSH 公钥

       ssh-keygen -t rsa

        不断回车

                如果公钥已经存在,则自动覆盖

gitee 设置账户共公钥

        获取公钥

                cat ~/.ssh/id_rsa.pub

 验证是否配置成功

        ssh -T git@gitee.com

3.5 操作远程仓库

3.5.1 添加远程仓库

命令:

git  remote  add <远端名称><仓库路径>

        远端名称,默认是 origin,取决于远端服务器设置

        仓库路径,从远端服务器获取次 URL

3.5.2 查看远程仓库

命令:

git remote

3.5.3推送到远程仓库

命令:

git  push  【-f 】【--set-upstream】【远端名称【本地分支名】【:远端分支名】】

        如果 远程分支名和本地分支名称相同则可以只写本地分支

        git  push   origin  master

        -f 表示强制覆盖

        --set-upstream 推送到远端的同时并且简历和远端分支的关联关系。

                git  push --set-upstream  orgin master

        如果当前分支已经和远端分支关联,则可以省略分支名和远端名

                git   push 将master 分支推送到已关联的远端分支

3.5.4 从本地分支与远程分支的关联关系

查看关联关系我们可以使用  git  branch -vv 命令

3.5.5 从远程仓库克隆

如果已经有了一个远程仓库,我们可以直接 clone 到本地。

       命令:

git  clone <仓库路径>【本地目录】

本地目录可以省略,会自动生成一个目录

3.5.6 从远程仓库中抓取和拉取

远程分支和本地分支一样,我们可以进行 merge 操作,只是需要先把远端仓库里的更新都下载到本地,在进行操作

        抓取命令

git  fetch  【remote  name】【branch  name】

抓取指令就是将仓库里的更新都转去到本地,不会进行合并

如果不指定远端名称和防止名,则会转去所有分支

        拉取命令

git  pull 【remote name】【branch name】

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

如果不指定远端名称和分支名,则抓取所有并更新当前分支。

3.5.7 解决合并冲突

在一段时间,A,B用户修改了同一个文件,且修改了同一行位置的代码,此时会发生合并冲突,

先拉取远程仓库提交,结果合并后才能推送到远程分支

 

远程仓库;练习

##########################1-将本地仓库推送到远程仓库
# 完成4.1、4.2、4.3、4.4的操作
略
# [git_test01]添加远程仓库
git remote add origin git@gitee.com/**/**.git
# [git_test01]将master分支推送到远程仓库,并与远程仓库的master分支绑定关联关系
git push --set-upstream origin master
###########################2-将远程仓库克隆到本地
# 将远程仓库克隆到本地git_test02目录下
git clone git@gitee.com/**/**.git git_test02
# [git_test02]以精简的方式显示提交记录
git-log
###########################3-将本地修改推送到远程仓库
# [git_test01]创建文件file03.txt
略
# [git_test01]将修改加入暂存区并提交到仓库,提交记录内容为:add file03
git add .
git commit -m 'add file03'
# [git_test01]将master分支的修改推送到远程仓库
git push origin master
###########################4-将远程仓库的修改更新到本地
# [git_test02]将远程仓库修改再拉取到本地
git pull
# 以精简的方式显示提交记录
git-log
# 查看文件变化(目录下也出现了file03.txt)

四、IDEA 操作GIT

4.1 IDEA 中配置  git

选择File→Settings打开设置窗口,找到Version Control下的git选项:

4.2 在 IDEA 中操作 Git

4.2.1 IDEA 创建git 仓库提交代码

第一步:打开项目

第二步:创建一个 git 仓库

第三部:将其文件添加到暂存区

第四部提交到本地仓库

第五步:将文件提交到远程仓库

 

 

第六: 查看提交日志(当提交到本地仓库即可查看到)

 4.2.2 通过 IDE 克隆项目

第一步:打开 IDE

第二步:找到 VCS --》选择  Get from Version...

 

 4.2.3 IDE 创建分支

 

4.2.4 IDE 解决代码冲突

先拉取,在提交

1、提交相同的修改地方

 提示代码冲突

中间就是当前代码,左右两侧表示不同地方

拉取代码时选择需要拉取的分支

合并分支

4.2.5 版本回退

4.3  操作入口

1、第一张图上的快捷入口可以基本满足开发的需求。

2、第二张图是更多在IDEA操作git的入口。

4.4 IDEA 集成 GitBash 作为 Terminal

疑难杂症

1、乱码

1.1 打开  gitBash 执行下面命令

git  config  --global  cor.quotepath   false

1.2、${git_home}/etc/bash.bashrc  文件最后加入下面两行

export   LANG="zh_CN.UTF-8"

export  LC_ALL="zh_CN.utf-8"

五、fatal: Authentication failed for 身份验证失败

1、查看本地配置

# 查看用户名 :
    git config user.name

# 查看密码: 
    git config user.password

# 查看邮箱:
    git config user.email

# 查看配置信息: $ 
    git config --list  

2、修改配置

修改用户名
git config --global user.name "xxxx(新的用户名)"

修改密码
git config --global user.password "xxxx(新的密码)"

修改邮箱
git config --global user.email "xxxx@xxx.com(新的邮箱)"


取消(删除)记录账号和密码
git config --system --unset credential.helper


对于Windows系统,你可以执行以下命令来重新启用 manager 凭证助手:
git config --system credential.helper manager


对于macOS系统,如果你想使用OS X Keychain作为凭证助手,可以使用:
git config --system credential.helper osxkeychain


对于Linux或其他系统,如果没有特定的偏好,可以考虑使用 cache 凭证助手,它会将凭证存储在内存中一段时间:
git config --system credential.helper cache



查询 凭证存储模式
git config --system credential.helper
或
git config --system --list
或
git config --system -l

3、Windows凭证修改

如果还是不行,需要确认windows凭据是否存在之前的git信息

找到控制面板 —》用户账户 --》凭据管理器 --》管理windows凭据

 

找到后修改即可。


总结

1、常用代码

工作区=》暂存区  git  add .

暂存区=》仓库  git  commit -m '描述'

查看状态  git status

查看提交记录 : git  log

版本回退 : git reset  --hard <commitID>

查看分支:git  branch

创建并切换分支 git  checkout  -b  分支名称

分支合并   git  merge 分支名   (需要先切换分支)

添加远程仓库  git  remote add  origin  <URL或者仓库名称>

推送远程仓库   git  push  [-f] [--set-upstream]【远端名称【本地分支名】【:远程分支名】】

查看远程分支与本地分支名关联关系  git   branch  -vv

从远程分支克隆项目   git  clone  <URL>

从远程仓库中抓取代码   git  fetch  【remote  name】【branch  name】

从远程仓库拉取代码   git   pull 【remote  name】【branch  name】

 2、常用指令速查

- 基本操作类
    git  init    
            初始化仓库
    git  log 【option】
            option:
                --all 显示所有分支
                --pretty=oneline 将提交信息显示为一行
                --abbrev-commit 使得输出的commitId更简短
                --graph 以图的形式显示
             查看日志
    git commit  -m  '描述'
             提交到仓库
    git  merge  <分支名>
             合并指定分支到当前活跃分支


- 分支切换类
    git   checkout  <分支名>
                切换分支到某个分支
    git  checkout  -b  <分支名>
                创建并切换到某个分支

-远程操作
    git  clone <远程地址>[本地文件夹]
                clone 远程仓库到本地
    git  pull  
                拉取远端仓库的修改并合并
    git  push [--set-upstream]  origin  分支名
                推送本地修改到远端分支
                --set-upstream 表示和远端分支绑定关联关系,只有第一次推送时才需要修改
    git fetch  【remote name】【branch name】
                抓取代码

3、养成好习惯

1、切换分支前提交本地的修改

2、代码及时提交,提交过了就不会丢

3、提交前先拉取代码,在提交

4、git 学习

Git教程 - 廖雪峰的官方网站

5、创建仓库初次提交代码到远程仓库

# 远程仓库穿件完成后 初始化仓库
git init  # 初始化一个git 本地仓库(项目),会在本地创建一个 .git 的文件夹


# 添加远程仓库
git  remote  add  https://gitee.com/你的码云用户名/XXX #添加远程仓库



#工作区=》暂存区
git add .


# 暂存区=》本地仓库
git  commit -m '描述'


#本地仓库 =》 远程仓库
git push origin master # 可能会报错  error: failed to push some refs to



# 当出现错误  error: failed to push some refs to  :使用强制推送
git push -u origin master -f

6、忽略已经commit的文件

git rm 要忽略的文件
git commit -a -m "删除不需要的文件"

在.gitignore文件中添加忽略规则

(1) 在.gitignore文件中添加ignore条目, 如: some/path/some-file.ext
(2) 提交.gitignore文件: git commit -a -m "添加gitignore规则"

推送到远程仓库是ignore规则对于其他开发者也能生效: git push [remote]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值