简单记录git的一些东西,想到哪里写哪里,比较乱!
官方文档地址:地址
参考学习地址:地址
git忽略文件配置:地址
初始化项目
首先在某个电脑上创建一个文件夹gitlearing,然后打开所在目录,右键鼠标使用Git Base Here
git init命令初始化git本地仓库
touch learing.txt创建一个learing.txt文本文件
vim learing.txt打开文本写一些内容,之后保存退出(操作同linux)
git add learing.txt将文件内容添加到索引(将修改添加到暂存区)
git commit -m 'xxxxx'添加文件内容到本地仓库
本地仓库版本回退
已经add和commit的回退
再次编辑learing.txt文件,操作如上,添加内容然后提交到本地仓库。
git log查看提交过的日志( git log --pretty=oneline 简化查看日志内容)
git reset --hard HEAD^ 回退到上一次提交的版本
现在想回退到指定版本。
git reflog 查看所有操作记录,获取版本号460af37,
git reset --hard 460af37 回退到指定版本号的版本
未add和commit的回退
继续修改文件内容,修改完后并且在执行git add命令前
git status 查看状态
然后不想要刚刚写的东西了,执行下面的命令:
git checkout -- learing.txt
已add的回退
但是如果执行了git add将文件内容提交到暂存区的情况如下,怎么整?
可以这么整,命令如下:
首先执行
git reset HEAD learing.txt 拉回在暂存区的内容
然后执行
git checkout -- learing.txt
git本地分支操作
分支创建和切换
git checkout -b dev 创建并切换分支,dev为分支名称
git branch 查看所有分支(*表示当前分支)
git branch dev1 创建分支
git checkout dev1 切换分支
分支删除
git branch -d dev1 删除分支(不要在当前分支,删除当前分支。应切换到其他分支,在删除dev1分支)
有可能出现如下情况:
这种情况为dev分支修改了内容并提交。当你删除时提示是否合并分支。不合并的话可以强制删除
git branch -D dev 强制删除分支
分支合并(无冲突)
git merge dev 快速合并某分支到当前分支
首先创建并切换个分支,然后修改文件内容提交
切换到master分支,查看文件内容,快速合并,再查看文件内容
然后删除dev分支,现在代码已经合并过了。所以删除(用-d而不用-D)就不会出现刚刚的报错了。
分支合并(有冲突)
先创建两个分支dev1 dev2
分别切换到两个分支并修改文件内容。这里以dev1举例
master合并dev1(没问题)
master合并dev2(出现问题)
查看要合并的文件内容
手动解决冲突的内容
查看文件状态
提交文件
git打标签
比如当前项目现在实现了两个功能,用户管理和订单管理。现在需要给最新版本的项目打标签
git tag v2 给最新版本打标签(v2为标签名称)
git tag 查看所有的标签
现在要求给以前的某个版本打标签,首先需要获取提交的版本号,然后根据制定版本号,打标签
git tag -d v2 删除标签
git忽略文件
首先在项目目录下创建一个test.class文件,查看状态
但是这个文件想忽略掉,不想跟踪提交。
可以在项目根目录下创建一个.gitignore文件,配置参考开头给的忽略文件配置,我这里是java开发。所以找java.gitignore
然后再查看就忽略掉了
但是这个.gitignore文件我们需要提交到项目上去,方便其他人。
git操作本地仓库和远程仓库
本地仓库和远程仓库建立联系
首先在码云上创建一个同名的项目
git remote 查看本地仓库是否有远程仓库
git remote add origin https://gitee.com/xxxx/gitlearing.git 把本地的项目和远程仓库建立联系
git push -u origin master 推送代码到远程仓库
出现错误,这时候需要拉取一下代码
然后再推送要强制推送否则还会报错 git push -u -f origin master 查看结果
拉取代码 git pull
远程仓库版本回退
自己远程分支版本回退
远程有个属于自己的dev分支,修改文件新增红框内容。这次本打算提交到其他分支,不小心提交到了dev分支,如下操作
这么回退?如下操作
首先查看提交日志,找到要回退到的版本号然后回退本地代码到指定版本,最后强制推送回退的版本到远程分支,在查看远程代码已经回退了