目录
前言
一、git基础操作之提交 todo
工作区 --> 暂存区 --> 本地库
git add .或者 git add --all 或者 git add * git commit -m ' 备注内容 '
区别:
git add readme.txt 单独提交某个文件
git add . 将未trace的文件加入暂存区,忽略.ignore中的
git add * 不会忽略.ignore中的文件,将全部文件提交
git add --all 所有改动的文件提交到暂存区且在本地做的删除操作会被记录,提交仓库时会删除同样的文件
git log 查看本地commit 提交记录
本地库 ---> 远程仓库
git push
git pull
是将远程分支的修改同步到本地,并和本地分支进行合并,所以 git pull 实际上是两个命令:
git pull = git fetch + git merge FETCH_HEAD
二、git基础操作之add撤销
通过git add命令将文件提交到暂存区之后,发现文件提交错了
git restore --staged 撤销在暂存区提交的文件
git reset
撤销暂存区中的文件
git checkout -- <file> 撤销对文件内容本身所做的更改(add或者commit后都可以)
三、git基础操作之commit撤销
当代码经过git commit -m 备注说明
提交本地仓库之后,想要代码回滚,只是将代码撤销到暂存区之后,还未添加到本地仓库的话,只能使用--soft
模式。
git log
查看历次提交记录,然后根据版本号来撤销,git reset --soft 版本号
。
撤销代码可能只是因为注释写的不完善,想重新修改。
git commit --amend -m '新的注释'
四、gitee的邮箱和登陆账号
注意有提交邮箱,若是本地idea中绑定的不是这个邮箱,则无法提交代码,gitlab也有这个问题
撤销详情参考 git代码撤销回滚只看这一篇就足够了!http://t.csdn.cn/KSSeshttp://t.csdn.cn/KSSes
五、git合并冲突 todo
合并发生冲突的本质原因是:要合并的两个分支修改了同一处代码, git不知道采取哪一个分支的代码
情景复现:
原始代码只有一个 README.md 文件,内容为:
This is first commit.
我在 master 分支上将该文件进行如下修改并提交:
This is second commit.
然后通过命令 git checkout -b dev
,新建一个 dev 分支,并切换到该分支。
修改 README.md 文件为如下内容,并进行提交:
This is third commit.
我这里在两个分支上,对同一个文件同一行进行了修改并提交。
然后切换到 master 分支上,通过命令 git merge dev
,将两个分支进行合并。
这时会提示 README.md 文件发生了冲突:
$ git merge dev
Auto-merging README.md
CONFLICT (content): Merge conflict in README.md
Automatic merge failed; fix conflicts and then commit the result.
README.md 文件中的内容自动变成:
<<<<<<< HEAD
This is second commit.
=======
This is third commit.
>>>>>>> dev
通过 ======= 将发生冲突的两部分进行隔开,表示这两部分不同内容会在文件中的相同位置。
HEAD 表示当前本地所在分支的别名,dev 表示将要将要合并过来的分支。
手动修改 READ.md 文件去掉冲突,比如修改为:
This is second/third commit.
然后使用 git add
将该文件添加到暂存区。
刚才遇到冲突后,merge 过程就被中断了,现在使用git merge --continue
继续合并过程。这时会弹出文本编辑界面,需要编辑内容作为 commit 信息。
编辑结束,保存 commit 信息后,冲突就被解决了,且合并过程也完成了。
六、本地生成仓库上传远程步骤
1. 远程建立好仓库,本地建好项目,选择VCS - > Import into Version Control -> Create Git Repository
选择本地路径中的代码存放位置,即将此文件夹设置成本地代码仓库,文件夹中有git即成功
若没有的话,在此文件夹中的空目录下,通过使用git init 命令把这个目录变成Git可以管理的仓库
2. 第一次提交,Push前需要指定远程仓库的地址。如下图,点击Define remote后,在弹出的窗口中输入远程仓库地址。
或者使用命令git remote add origin <远程仓库路径>
将我们的远程仓库在本地git中取个名为origin的别名。
然后使用
git push origin master:master
命令提交到远程仓库
3. 进行push或者pull报错
解决:
git pull <remote> <branch>
为分支设置跟踪信息:
git branch --set-upstream-to=origin/<branch> master
报错refusing to merge unrelated histories
git pull origin master --allow-unrelated-histories
执行完后会有冲突出现
七、IntelliJ IDEA 不显示Git的解决办法
1、idea工具类里面查到 VCS ,下拉选项里面选择 Enable Version Control Integration(启用版本控制集成)。
2、在弹出框里面选择需要的版本管理工具,如选择Git。