Git

下载Git

官网:https://git-scm.com/downloads 镜像:

一、新建代码库(初始化)

在要追踪的文件夹中,鼠标右键打开Git Bash Here

让 Git 可以追踪到此文件

//在当前目录新建一个Git代码库
git init
//新建一个目录,将其初始化为Git代码库
git init [project-name]

克隆项目,将项目从GitHub中下载到本地

//下载一个项目和它的整个代码历史
git clone [url](仓库的https或者ssh)

二、配置(一次就好)

这是Git第一次使用时配置,仅仅配置一次就行

绑定用户

//配置用户名,让每次提交代码时知道是谁提交的即可
git config --global user.name 用户名(填写自己的用户名)
//配置邮箱,不需要是真实邮箱,Git不会去验证
git config --global user.email 邮箱(填写邮箱,不需要是真实邮箱)

三、Git常用命令

1、安装与配置

命令

说明

sudo apt-get install git

Ubuntu上安装Git命令

git config --global user.name 用户名

设置用户签名

(安装Git后务必设置)

git config --global user.email email地址

设置用户email地址

(安装Git后务必设置)

2、获取与创建项目

命令

说明

git init

初始化本地库,使Git追踪到该本地库

git clone 远程库http地址(GitHub仓库的https)

将远程库代码克隆到本地

3、基本快照

命令

说明

git status

查看本地库状态,显示有变更的文件

git add 文件名

添加变动文件到暂存区

git add .

添加当前目录下所有变动文件到暂存区

git restore --staged 文件名

复位在暂存区的文件(add反悔药)

git rm --cached 文件名

移除在暂存区的文件(add反悔药)(同上一条)

git commit -m '版本备注' 文件名

提交暂存区文件到本地库 (文件名缺省时,将暂存区所有文件提交)

git commit -m '版本备注'

提交暂存区所有文件到本地库

git commit --amend

修改上次提交的备注文本

git revert 版本号(7位)

撤销指定的提交(commit反悔药)(慎用)

git reset --hard 版本号(7位)

版本间穿梭(配合git reflog使用)

可以跳回之前提交的版本,用git reflog可以查看版本号

git reset --hard HEAD^

穿梭到上一个版本

4、分支与合并

命令

说明

git branch

列出所有分支

git branch 分支名

创建分支

git checkout 分支名

切换分支

git merge 分支名B

分支B合并到A (A为当前工作目录所处分支)

git branch -d 分支名

删除分支

git tag

列出所有本地标签

git tag -l 通配模式文本(*)

根据符合通配模式文本,列出所有本地标签

git tag 标签名

为最新提交创建轻量标签

git tag 标签名 版本号(7位)

为对应版本号提交创建轻量标签(在后期打标签)

git tag -a 标签名 -m 备注文本

为最新提交创建附注标签

git tag -d 标签名

删除指定标签

5共享与更新项目

命令

说明

git remote add 别名 远程仓库地址(GitHub仓库的https)

添加远程库

git remote -v

查看添加过的远程库

git push 远程库地址或其别名 分支名

推送到远程库

git push 远程库地址或其别名 --tags

推送所有标签到远程库

git fetch

将远程库的最新内容拉到本地

git pull 远程库地址或其别名 分支名

将远程仓库对于分支最新内容拉下来后与当前本地分支直接合并, 相当于git fetch + git merge,这样可能会产生冲突,需要手动解决

6、管理

命令

说明

git reflog

可以查看所有分支的所有操作记录 (包括已被删除的commit记录和reset的操作,git log所不能)

git log

显示当前分支的版本历史(包括何时提交和作者)

git status

查看本地库状态,显示有变更的文件

四、配置 Git 忽略文件

  • 与项目的实际功能无关,不参与服务器上部署运行。把它们忽略掉能够屏蔽 IDE 工具之间的差异。

例如,Maven工程根据src生成的target。

  • 创建忽略规则文件 xxxx.ignore(前缀名随便起,建议是 git.ignore),这个文件的存放位置原则上在哪里都可以,

为了便于让~/.gitconfig 文件引用,建议也放在用户家目录下。

git.ignore 文件模版内容如下:

# Compiled class file
*.class

# Log file
*.log

# BlueJ files
*.ctxt

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

# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar

# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
.classpath
.project
.settings
target
.idea
*.iml

在.gitconfig 文件中引用忽略配置文件(此文件在 Windows 的家目录中)

[user]
	name = 名称
	email = 邮箱号
[core]
	excludesfile = git.ignore文件位置

注意:这里要使用“正斜线(/)”,不要使用“反斜线(\)”

五、上传代码到GitHub步骤

1.初始化

git init

2.添加当前目录下所有变动文件到暂存区

git add .

3.提交暂存区所有文件到本地库

git commit -m '版本备注'

4.关联github仓库

git remote add 远程库别名(最好和项目名字一样) URL(仓库的https)

# 例子:git remote add origin url

5.上传本地代码

git push -u 远程库别名 分支名

#例子:git push -u origin master

五、IDEA使用Git

  1. 首先,在需要提交项目的位置上建立git repository (git init)

idea 中 git branches 上没有刷新按钮_远程库

  1. 将GitHub上的库的地址添加到idea

idea 中 git branches 上没有刷新按钮_远程库_02

idea 中 git branches 上没有刷新按钮_暂存区_03

  1. git add添加当前目录下所有变动文件到暂存区

idea 中 git branches 上没有刷新按钮_暂存区_04

  1. commit ,提交到本地仓库

idea 中 git branches 上没有刷新按钮_远程库_05

idea 中 git branches 上没有刷新按钮_git_06

6.push代码,提交文件到远程数据库

idea 中 git branches 上没有刷新按钮_暂存区_07

切换版本

idea 中 git branches 上没有刷新按钮_远程库_08

分支

idea 中 git branches 上没有刷新按钮_idea_09

代码clone

idea 中 git branches 上没有刷新按钮_暂存区_10

合并分支

idea 中 git branches 上没有刷新按钮_git_11