概念
Git是一个免费的开源 分布式版本控制系统,旨在快速高效地处理从小型到大型项目的所有内容。
Git易于学习, 占地面积小,具有闪电般的快速性能。它具有诸如Subversion,CVS,Perforce和ClearCase之类的SCM工具,具有廉价的本地分支,便捷的暂存区域和 多个工作流等功能
git获取
-
git官网地址:https://git-scm.com/
-
如果本地下载过git,需要更新到最新版本
git clone https://github.com/git/git
-
安装完查看git版本
git --version
liouwb@liouwbdeMacBook-Pro ~ % git --version
git version 2.23.0
仓库配置(gitconfig)
配置文件位置
- /etc/gitconfig 系统配置文件需要管理员权限
- ~/.gitconfig 用户配置文件(windows一般情况下是在 C:\Users$USER 下.gitconfig
- git仓库的config 文件(即 .git/config)
可以通过打开以上目录文件来查看配置
- 也可以通过命令
$ git config --list --show-origin
查看文件位置 git config --list
查看git所有的配置
修改配置文件
- 正常开发过程中,我们都会设置用户名和邮箱
git config --global user.name "liouwb"
git config --global user.email liouwb@163.com
git仓库
- git远程仓库和本地仓库的关系
1.把本地文件变成git仓库
-
git init
git init
把本地非git项目,初始化为git仓库,在本地文件执行git init
命令,本地就会多出一个.git的目录 -
git add
git add
文件 把本地新增或者修改的文件添加到本地仓库
# 添加单个文件到本地仓库
git add learn.txt
# 添加本地所有文件到本地仓库
git add .
git commit
git commit
把git add
的文件提交到本地仓库
# commit 后面-m 参数 添加提交说明
git commit -m "提交的说明"
2.git获取远程仓库
git clone
git clone
从远程仓库(github gitlab gitee)上拉取远程仓库代码到本地,并建立联系
git clone url(远程分支地址)
git常用命令
git status
查看本地仓库状态
liouwb@liouwbdeMacBook-Pro web-demo % git status
On branch master
Your branch is up to date with 'origin/master'.
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
deleted: .mvn/wrapper/maven-wrapper.properties
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: src/main/java/com/liouxb/web/demo/service/impl/TestServiceImpl.java
git status -s
liouwb@liouwbdeMacBook-Pro web-demo % git status -s
D .mvn/wrapper/maven-wrapper.properties
M src/main/java/com/liouxb/web/demo/service/impl/TestServiceImpl.java
git diff
difference 显示改动
# 对比文件修改记录
git diff 文件全路径
# 比对已暂存文件与最后一次提交的文件差异
git diff --staged
# 查看已经暂存起来的变化(--staged 和 --cached 是同义词)
git diff --cached
-
git stash
查看本地仓库状态 -
git push
把本地仓库代码推送到远程仓库git push origin(远程分支的名称,默认是origin也可以设置为其他名称) 分支名称
远程仓库设置
git remote -v
查看远程仓库信息
liouwb@192 web-demo % git remote -v
origin git@gitee.com:liouwb/web-demo.git (fetch)
origin git@gitee.com:liouwb/web-demo.git (push)
liouwb@192 web-demo %
-
git remote remove 远程仓库名称
解除与远程仓库的关联 -
git remote add 远程仓库名(默认origin) 远程仓库地址
与远程仓库建立联系(可以设置多个远程仓库)
git常用命令
# 解除本地分支与远程分支的关系
git branch -r -d origin/branch-name
# 删除本地分支(-D强制删除)
git branch -d branch-name
# 删除远程分支
git push origin : branch-name
# 从远程分支更新代码到本地
git pull origin master
# 把本地分支推送到远程
git push origin dev_liubin
# 以远程分支为镜像创建本地分支
git checkout -b reloan origin/reloan
# 合并分支,并记录
git merge --no-ff branch
# 合并分支,产生一个新的commit-id
git merge --squash branch
# 合并分支不提交merge请求,可以合并后结果代码
git merge -no-commit
# 可以看到删除分支情况
git remote show origin
# 解决远程分支删除之后,git branch -r依然能看到
git remote prune origin
# 撤销当前未提交操作
git reset --
# 把本地仓库所有分支及记录推到新的远程仓库(仓库迁移)
git push --mirror url
# 删除远程对应仓库
git remote remove origin
# 添加远程仓库地址
git remote add origin newurl
# 放弃cherry-pick操作
git cherry-pick --abort
gitignore 不生效
# 把之前提交的现在添加到gitignore文件的排除
$ git rm -f --cached .
# 提交
$ git add .
$ git commit -m "注释"
git 仓库迁移
git clone --bare http://域名/分组/仓库名称.git
cd 仓库名称.git
git push --mirror http://新域名/新分组/新仓库名称.git