Git

Git的学习记录

一、常用指令

命令如下:

  1. clone(克隆): 从远程仓库中克隆代码到本地仓库

  2. checkout (检出):从本地仓库中检出一个仓库分支然后进行修订

  3. add(添加): 在提交前先将代码提交到暂存区

  1. commit(提交): 提交到本地仓库。本地仓库中保存修改的各个历史版本

  2. fetch (抓取) : 从远程库,抓取到本地仓库,不进行任何的合并动作,一般操作比较少。

  3. pull (拉取) : 从远程库拉到本地库,自动进行合并(merge),然后放到到工作区,相当于

fetch+merge

  1. push(推送) : 修改完成后,需要和团队成员共享代码时,将代码推送到远程仓库

二、使用顺序

1、安装

访问Git - Downloads (git-scm.com)下载并安装Git工具

2、设置用户名、email地址

打开Git Bash

1
2
3
4
#设置用户名
git config --global user.name “itcast”
#设置邮箱
git config --global user.email “2636939357@qq.com”

3、设置指令别名(可省略)

  1. 打开git bash输入

1
touch ~/.bashrc

创建.bashrc文件

  1. 打开创建好的文件,一般在c盘的用户目录下:

    C:\Users\Lenovo\ .bashrc

  2. 在.bashrc文件中填写如下代码,设置指令别名

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

4、初始化本地仓库

  1. 进入项目目录

    执行命令:

    1
    git init

    即可创建一个隐藏的.git目录

三、基础操作指令

Git工作目录下文件修改存在增加、删除、更新这几个状态。这些状态会随着我们执行Git的指令而变化。

2

一共三个状态:仓库、暂存区、工作区

1、对文件的操作

1
2
git add 文件名 #工作区->暂存区
git commit 文件名 -m '注释内容' #暂存区->本地仓库

2、查看当前状态

1
git status

1

表面有一个文件已经使用git add指令被放置到暂存区,等待提交。 一个文件没有被追踪:还在工作区

3、查看提交记录

1
2
3
4
5
6
7
8
9
10
11
12
git log [option]


[options]:

--all 显示所有分支

--pretty=oneline 将提交信息显示为一行

--abbrev-commit 使得输出的commitId更简短

--graph 以图的形式显示

2

4、版本回退

1
git reset --hard commitID

使用上述命令可以切换commit后的版本。commitID可以在git log查询得到。

1
2
#查询已经删除的提交记录
git reflog

5、添加文章至忽略列表

  1. 工作目录中创建.gitignore文件

  2. 在文件中写要忽略的文件模式(支持一定语法)

1
2
3
4
5
6
7
8
9
10
11
12
13
# no .a files
*.a
# but do track lib.a, even though you're ignoring .a files above
!lib.a
# only ignore the TODO file in the current directory, not subdir/TODO
/TODO
# ignore all files in the build/ directory
build/
# ignore doc/notes.txt, but not doc/server/arch.txt
doc/*.txt
# ignore all .pdf files in the doc/ directory
doc/**/*.pdf
####################

6、分支操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#查看本地分支
git branch
#创建本地分支
git branch 分支名
#切换分支
git checkout 分支名
#创建并切换
git checkout -b 分支名
#合并分支
git merge 分支名
#删除分支(不能删除当前分支)
#需要做检查
git branch -d 分支名
#不需要做检查强制删除
git branch -D 分支名

合并分支与冲突解决

1

经过测试,如果git merge后出现冲突,不解决直接加入暂存区提交。也可行。不过可能会代码报错。

四、Git远程仓库

常见远程仓库有

  1. github https://github.com/
  2. gitee https://gitee.com/
  3. gitlab https://about.gitlab.com/
  1. 创建并初始化远程仓库。步骤忽略。

1、添加并查看远程仓库

1
2
3
4
5
6
7
8
9
#添加远程仓库
git remote add <远端名称> <仓库路径>
#远端名称,默认是origin,取决于远端服务器设置
#仓库路径,从远端服务器获取此URL
#例如:
git remote add origin git@gitee.com:czbk_zhang_meng/git_test.git

#查看添加的远程仓库
git remote

2、推送到远程仓库

1
2
3
4
5
6
7
8
#推送到远程仓库
git push [-f] [--set-upstream] [远端名称 [本地分支名][:远端分支名] ]
#如果远程分支名和本地分支名称相同,则可以只写本地分支
git push origin master
#-f 表示强制覆盖
#--set-upstream 推送到远端的同时并且建立起和远端分支的关联关系。
git push --set-upstream origin master
#如果当前分支已经和远端分支关联,则可以省略分支名和远端名。

5

3、查看本地与远程分支关联关系

1
git branch -vv

6

4、从远程仓库克隆

1
2
git clone <仓库路径>[本地目录]
#其中本地目录可以为空,会自动生成一个目录

5、从远程仓库中抓取和拉取

1
git fetch [remote name][branch name]

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

如果不指定远端名称和分支名,则抓取所有分支。

1
2
3
4
5
6
git pull [remote name][branch name]
#拉取指令就是将远端仓库的修改拉到本地并自动进行合并,等同于fetch+merge
#如果不指定远端名称和分支名,则抓取所有并更新当前分支。

#例如
git pull origin master

五、Git结合Idea使用

这部分很傻瓜。无代码操作,纯GUI操作。故不解释