Git

基本配置

  • Git GUI : 图形化界面工具
  • Git Bash :命令行工具

设置用户信息

打开Git Bash

设置用户名称

1
git config --global user.name"yzf522"

设置用户邮箱地址(可以是假的)

1
git config --global user.email"yzf522@qq.com"

查看

1
git config --global user.name
1
git config --global user.email

为常用指令配置别名(可选)

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

1.打开用户目录,创建.bashrc文件,也可以:

1
touch ~/.bashrc

2.在.bashrc文件中输入如下内容:

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

3.打开gitBash,执行source ~/.bashrc

1
source ~/.bashrc

解决GitBash乱码问题

打开GitBash执行下面命令

1
git config --global core.quotepath false

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

1
2
export LANG="zh_CN.UTF-8"
export LC_ALL="zh_CN.UTF-8"

获取本地仓库

  1. 在电脑的任意位置创建一个空文件夹(例如test)作为我们的本地Git仓库

  2. 进入这个文件夹中,点击右键打开Git bash窗口

  3. 执行命令

    1
    git init
  4. 如果创建成功后可在文件夹下看到隐藏的.git目录。

常用指令

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

工作区–>暂存区

1
git add 文件名

将所有修改加入暂存区:

1
git add .

暂存区–>本地仓库

作用:提交暂存区内容到本地仓库的当前分支

1
git commit -m "注释"

查看修改的状态(暂存区、工作区)

1
git status

查看日志

作用:查看提交记录命令形式:git log [option]

  • options:
    • –all 显示所有分支
    • –pretty=oneline 将提交信息显示为一行
    • –abbrev-commit 使得输出的commitId更简短
    • –graph 以图的形式显示

在上面中配置的别名git-log就包含了这些参数,所以后续可以直接使用指令git-log

版本回退

作用:版本切换

命令形式:git reset –hard commitID

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

1
git reset --hard 

查看已经删除的记录:

1
git reflog

分支

几乎所有的版本控制系统都以某种形式支持分支。使用分支意味着你可以把你的工作从开发主线上分离开来进行重大的Bug修改、开发新的功能,以免影响开发主线。相当于复制一份到单机,服务器上的正常运行。

查看本地分支

1
git branch

创建本地分支

1
git branch 分支名

切换分支

1
git checkout 分支名

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

1
git checkout -b 分支名

合并分支

一个分支上的提交可以合并到另一个分支

1
git merge 分支名称

删除分支

  • 不能删除当前分支,只能删除其他分支
  • 删除分支时,需要做各种检查
1
git branch -d 分支名称
1
git branch -D 分支名称 不做任何检查,强制删除

解决冲突

当两个分支上对文件的修改可能会存在冲突,例如同时修改了同一个文件的同一行,这时就需要手动解决冲突,解决冲突步骤如下:

  1. 处理文件中冲突的地方
  2. 将解决完冲突的文件加入暂存区(add)
  3. 提交到仓库(commit)

Git远程仓库

GitHub:https://github.com/

码云:https://gitee.com/

GitLab:https://about.gitlab.com/

创建远程仓库

创建仓库之后,选择ssh地址

配置SSH公钥

  • 生成SSH公钥
1
ssh-keygen -t rsa

注意:不断回车,如果公钥已经存在,则自动覆盖

  • Gitee设置账户共公钥

获取公钥

1
cat ~/.ssh/id_rsa.pub

添加远程仓库

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

远端名称,默认是origin,仓库路径取决于远端服务器设置仓库路径,从远端服务器获取此URL

例如:git remote add origin git@gitee.com:czbk_zhang_meng/git_test.git

查看远程仓库

1
git remote

推送到远程仓库

命令:git push [-f] [--set-upstream] [远端名称[本地分支名][:远端分支名] ]

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

1
git push origin master(本地分支名)
  • -f表示强制覆盖
  • –set-upstream推送到远端的同时并且建立起和远端分支的关联关系。
1
git push --set-upstream origin 本地分支(master) 

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

1
git push

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

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

1
git branch -vv

从远程仓库克隆

1
git clone <仓库路径> [本地目录]

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

从远程仓库中抓取和拉取

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

  • 抓取命令:git fetch [remote name] [branch name]

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

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

  • 拉取命令:git pull [remote name] [branch name]

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

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