一、Git概念
1.代码位置
工作区
位于本地计算机,开发一个项目时,主目录就是工作区,即编写代码的区域。里面含有未被git管理的文件、被git管理的文件。
git status命令可以查看项目中有哪些文件在工作区。查看工作区代码相对于暂存区的差别。
暂存区
位于本地计算机,文件被git add命令执行后,就会从工作区添加到暂存区。此时文件已经被git追踪。
本地版本库
位于本地计算机,文件被git commit命令执行后,就会从暂存区提交到本地版本库。
远程版本库
位于远程服务器,文件被git push命令执行后,就会从本地版本库传输到远程服务器中的git仓库中。
git命令中的单词“origin”就是代表远程服务器上的源仓库。
2.分支
分支关联
假设远程版本库A有A1、A2两个分支,远程版本库B有B1、B2、B3三个分支,本地有C1和C2两个分支。
如果本地分支和远程分支不关联的话,git pull命令将无法执行。
连接本地分支和远程分支的通道在git中使用的是“upstream”一词。
通过设置upstream命令(git branch --set-upstream-to)可以将本地分支和远程分支连接起来。
二、Git命令
git clone
克隆项目
git add
将代码从工作区添加到暂存区。
1.git add .
将当前目录下修改操作的文件和未跟踪新添加的文件添加到git系统的暂存区,注意不包括删除的文件。
. 代表当前目录。
git add .
2.git add -u .
-u 表示将已跟踪文件中的修改和删除的文件添加到暂存区,不包括新增加的文件。
git add -u .
注意这些被删除的文件被加入到暂存区再被提交并推送到服务器的版本库之后这个文件就会从git系统中消失了。
3.git add -A .
-A 表示将所有的已跟踪的文件的修改与删除和新增的未跟踪的文件都添加到暂存区。
git add -A .
注意,这个命令看似一劳永逸,弥补了上面命令的缺点,但同时也会带来隐患。执行这个命令,编辑器自动产生的文件也会被提交到暂存区,一旦push,远程服务器也有了。
git commit
git提交代码,将暂存区里的改动给提交到本地版本库。
1.git commit -m ‘message’
-m 参数表示可以直接输入后面的“message”,如果不加 -m参数,那么是不能直接输入message的。
message就是提交的版本信息。版本信息外面使用单引号或双引号都可以。
git commit -m "重新整理项目结构"
2.git commit -am ‘message’
-am等同于-a -m
-a参数可以将所有已跟踪文件中的执行修改或删除操作的文件都提交到本地仓库,即使它们没有经过git add添加到暂存区,
注意: 新加的文件(即没有被git系统管理的文件)是不能被提交到本地仓库的。
git commit -am ‘删除补打功能’
git pull
git pull命令的作用是取回远程主机某个分支的更新,再与本地的指定分支合并。该命令是git fetch + git merge命令之和。
git pull完整命令:
git pull 远程主机名 远程分支名:本地分支名
示例:
git pull origin master:master
如果本地分支和远程分支有追踪关系:
git pull
git push
git branch
一般用于分支的操作,比如创建分支,查看分支等等。
1.git branch
不带参数:列出本地已经存在的分支,并且在当前分支的前面用"*"标记。
2.git branch -r
查看远程版本库分支列表。
3.git branch -a
查看所有分支列表,包括本地和远程
4.git branch 分支名称
创建新分支,创建分支时需要是最新的环境,创建分支但依然停留在当前分支。
通常在该命令创建分支后,使用git checkout命令切换到新创建的分支。
5.git branch -d dev
删除dev分支,如果在分支中有一些未merge的提交,那么会删除分支失败,此时可以使用 git branch -D dev:强制删除dev分支。
6.git branch -vv
可以查看本地分支对应的远程分支
7.git branch -m oldName newName
给分支重命名。
8.git branch --set-upstream-to
关联本地分支和远程分支。
如果git pull命令失败,报错“There is no tracking information for the current branch”,可以通过该命令解决。
具体语法:git branch --set-upstream-to=origin/远程分支名称 本地分支名称
示例:
git branch --set-upstream-to=origin/dev dev
git checkout
1.git checkout 分支名称
切换分支
2.git checktout -b 分支名称
创建并切换分支。
git checkout -b dev
git checkout命令加上-b参数表示创建并切换,相当于以下两条命令:
git branch dev
git checkout dev
然后,用git branch命令查看当前分支。
git tag
代码打标机。
git tag 标签名称 -m '标签注释'
git tag SDSZHXMYWZCFWXT.V1.1.55.210618 -m '电子出证系统导出企业功能'
git push origin SDSZHXMYWZCFWXT.V1.1.55.210618
使用IntelliJ系列软件打tag:
添加tag信息:
之后push标记,重点是push时勾选下面选框:
三、常用场景
1.创建本地分支、远程分支
本地仓库和远程仓库都没有dev分支,现在本地创建dev分支,并在远程仓库也创建dev分支。
# 创建并切换到dev分支
git checkout -b dev
# 远程仓库创建dev分支
git push origin dev
2.查看当前所在分支
git branch