Git分布式版本控制工具

[复制链接]
发表于 3 天前 | 显示全部楼层 |阅读模式
一、工作流程


二、常用指令

1、设置git


  • 设置环境变量

cmd打开下令行,输入git检察是否设置成功。

  • 设置用户名和邮箱
git config --global user.name "用户名"
git config --global user.email "邮箱"

  • 检察用户名和邮箱
git config --global user.name
git config --global user.email

  • 检察全部的设置信息
git config --list
2、基础下令

1、 git add
将工作区修改的的一个或多个文件提交到暂存区
git add 单个文件名|通配符
2、git commit
提交暂存区内容到当地堆栈的当前分支
git commit -m '解释内容'
3、git status:检察修改的状态
git status 紧张体现:

  • 当前分支及与远程分支的关系。
  • 已暂存的更改(即将提交的更改)。
  • 未暂存的更改(已修改但未 git add)。
  • 未跟踪的文件(新文件)。
  • 归并冲突(如果有)




3、bash乱码和git status乱码

1、git status乱码

缘故原由:
在默认设置下,中文文件名在工作区状态输出,中文名不能精确体现,而是体现为八进制的字符编码。
办理办法:
将git设置文件 core.quotepath项设置为false。quotepath表现引用路径,加上–global表现全局设置
  1. git config --global core.quotepath false
复制代码
2、bash下令乱码

${git_home}/etc/bash.bashrc 文件末了到场下面两行
  1. export LANG="zh_CN.UTF-8"
  2. export LC_ALL="zh_CN.UTF-8"
复制代码
三、常用操纵

1、创建当地厂库


  • 在当地创建一个空目次
  • 进入目次,输入指令git init举行初始化
  • 创建成功出现.git目次
2、git log 检察日志日志

下令情势:git log [option] options

  • –all 体现全部分支
  • –pretty=oneline 将提交信息体现为一行
  • –abbrev-commit 使得输出的commitId更简短
  • –graph 以图的情势体现
3、git reset --hard commitID版本回退

版本切换 git reset --hard commitID
commitID 可以利用 git log 检察
如何检察已经删除的记载?
git reflog 这个指令可以看到已经删除的提交记载

4、添加文件到忽略列表

创建一个名为 .gitignore 的文件(文件名称固定),列出要忽略的文件模式 。
每行一个忽略项
  1. # 忽略所有 .log 文件
  2. *.log
  3. # 忽略特定文件
  4. secret.txt
  5. # 忽略目录(包括其子目录)
  6. node_modules/
  7. dist/
  8. # 忽略特定扩展名的文件(如 .tmp)
  9. *.tmp
  10. # 不忽略某个特定文件(即使匹配前面的规则)
  11. !important.log
  12. # 注释以 # 开头
复制代码
如果文件已经被 Git 跟踪(之条件交过),必要先移除 Git 的缓存:
  1. git rm -r --cached .  # 清除所有缓存,或者指定要清除的缓存
  2. git add .             # 重新添加文件
  3. git commit -m "忽略某些文件"
复制代码
验证 .gitignore 是否见效
  1. git status --ignored  # 查看被忽略的文件
复制代码
5、git rm --cached 和 git rm区别


四、分支和冲突的处置惩罚

1、分支


  • git branch:检察当地分支
  • git branch 分支名 :创建分支
  • git checkout 分支名:切换分支
  • git checkout -b 分支名:切换到一个不存在的分支(创建并切换)
  • git merge 分支名称:将某分支归并到当前的分支
  • git branch -d b1 删除分支时,必要做各种查抄
  • git branch -D b1 不做任何查抄,强制删除
2、办理冲突

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

  • 处置惩罚文件中冲突的地方
  • 将办理完冲突的文件到场暂存区(add)
  • 提交到堆栈(commit)
3、在一个分支上修改文件内容,切换到另一个分支时出现的问题

在idea内里,会直接将该分支的修改带到另一个分支上。
在下令行:

要想直接切换,可以在当前的分支利用git stash下令。
git stash : 临时生存当前工作目次和暂存区的修改,以便切换分支或处置惩罚其他使命,而无需提交未完成的更改。

切换到master分支后(做一些其他操纵…),再切换返来,如何规复文件的内容,可以利用git stash pop
规复最近暂存的修改(stash)并删除该 stash 记载的下令。它是 git stash apply + git stash drop 的组合操纵。

如果git stash pop 时当前分支的文件与stash 内容冲突,Git 会报错,并生存 stash(不会主动删除)。
冲突文件会包罗冲突标记(<<<<<<<, =======, >>>>>>>)

第一种办理方法是:
git restore file.txt  抛弃对 file.txt 的修改,再去git stash pop
第二种办理办法是:
可以先git commit,再去git stash pop

不难发现就是将每次的stash操纵加到了栈中,每次git stash pop时,弹出一个,判断有没有冲突。
常见的带参数的git stash下令下令作用git stash生存当前未提交的修改(工作区和暂存区)到 stash 栈git stash push同上,支持更多参数(如 -u 包罗未跟踪文件)git stash list检察全部 stash 记载(体现 stash@{n} 格式的列表)git stash apply规复最新的 stash(不删除记载,默认 stash@{0})git stash pop规复最新的 stash 并删除记载(默认 stash@{0})git stash drop删除指定的 stash(如 git stash drop stash@{1},不指定则删除最新的)git stash clear清空全部 stash 记载(不可逆!)git stash show体现最新 stash 的改动概览(加 -p 检察完备 diff)git stash branch <名>基于 stash 内容创建新分支并主动 pop五、开辟中分支的利用流程

在开辟中一样平常就是先git pull拉取远端的代码,再git commit提交到当地堆栈,再git pull拉取一下(保举非强制),在git push推送到远端堆栈中去。
分为几个分支:
master (生产)分支 线上分支,主分支,中小规模项目作为线上运行的应用对应的分支;
develop(开辟)分支 是从master创建的分支,一样平常作为开辟部分的紧张开辟分支,如果没有其他并行开辟差别期上线 要求,都可以在此版本举行开辟,阶段开辟完成后,必要是归并到master分支,预备上线。 feature/xxxx分支 从develop创建的分支,一样平常是同期并行开辟,但差别期上线时创建的分支,分支上的研发使命完 成后归并到develop分支。
hotfix/xxxx分支, 从master派生的分支,一样平常作为线上bug修复利用,修复完成后必要归并到master、test、 develop分支。
尚有一些其他分支,在此不再详述,例如test分支(用于代码测试)、pre分支(预上线分支)等等。
六、gitee的利用

1、添加远程堆栈

git remote add <远端名称> <堆栈路径></font>
远端名称默认是origin
2、检察远程堆栈

git remote
3、推送到远程堆栈

git push [-f] [--set-upstream] [远端名称 [当地分支名][:远端分支名] ]
-f 表现强制覆盖
--set-upstream推送到远端的同时而且创建起和远端分支的关联关系。
如果已经创建联系,可以直接git push
4、当地分支与远程分支的关联关系

git branch -vv

5、从远程堆栈克隆

git clone <堆栈路径> [当地目次]
6、从远程堆栈中抓取

抓取下令:git fetch [remote name] [branch name] </font>
抓取指令就是将堆栈里的更新都抓取到当地,不会举行归并,如果不指定远端名称和分支名,则抓取全部分支。
7、从远程堆栈中抓取

拉取下令:git pull [remote name] [branch name]
拉取指令就是将远端堆栈的修改拉到当地并主动举行归并,等同于fetch+merge,如果不指定远端名称和分支名,则抓取全部并更新当前分支。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
继续阅读请点击广告

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

×
登录参与点评抽奖,加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表