//git 初始化项目
//1、本地创建一个空文件夹,名字什么都可以,我的叫 GitDemo,然后命令行进入到这个文件夹内,执行 git init 命令:
git init
//2、拉取远程仓库代码
git remote add git@github.com:***/GitDemo.git
git remote -v //验证结果
//3、新建分支
git branch master
git branch -a //查看所有的分支,远程和本地的
git status //查看当前状态
//4、新增一个文件,然后执行add操作
touch test.txt
git add test.txt //将文件添加到缓存区
git commit -m '新增文件操作' //提交文件并添加更新信息
//5、拉取远程仓库代码
git pull origin master //拉取远程master分支下的代码
git push origin master // 推送本地代码至远程master仓库
//6、新建另外的分支,并merge操作
git branch dev //新建dev分支
git checkout master //切换到master主分支
git merge dev //把dev的内容,更新到master分支上,(前提是dev的内容已经add & commit操作了)
//以当前分支为基础,创建一个新分支
git checkout -b <branch name>
//以指定的某一个提交,创建一个新分支
git checkout -b <branch name> <SHA1>
//7、创建一个远程分支
git push --set-upstream origin dev //把第六步操作中的dev分支上传到remote服务器上
//删除远程分支需要 push 操作。
git push origin :<name>
//两者的区别在于-D比-d要粗暴一点。当被删除分支有新内容没有被合并的时候,使用-D,会直接删除, 使用-d,会提示该分支有新内容没有被合并,不执行删除
git branch -d <name>
git branch -D <name> //强制删除
//8、log命令的使用
git log
//使用 --oneline 参数,only one line !只显示提交的 SHA1 值和提交信息,SHA1 还是缩短显示前几位。比 git log 的效率要高点。
git log --oneline
//某个日期之后
git log --since=<date>
git log --after=<date>
//某个日期之前
git log --until=<date>
git log --before=<date>
//查出 03.12-03.18 期间的提交
git log --since="2018.03.12" --until="2018.03.18"
//搜索提交信息,也支持正常表达式
git log --grep=<pattern>
//示例
git log --grep='喜欢' --oneline
//命令格式 搜索参数为提交的创建者和提交者,而且是支持正则表达式的,可以发挥的余地很多
git log --author=<pattern>
git log --committer=<pattern>
//示例
git log --author=“小明”
git log --author=“小明\|小红”
//图文并茂版
//这次命令使用三个参数 --oneline, --decorate 和 --graph 。
//oneline 刚才就是哪个一句话情书的。
//–graph 选项会绘制一个 ASCII 图像来展示提交历史的分支结构。
//–decorate 是用来可以显示出指向提交的指针的名字,也就是 HEAD 指针, //feature/test等分支名称,还有远程分支,标签等。
git log --graph --oneline --decorate
//最强推荐版
git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative
log命令参考链接:https://blog.csdn.net/qq_32452623/article/details/79599503
//8、rebase操作 rebase -i 开启黑暗世界
//rebase -i叫交互式 rebase ,那它交互的是什么呢?是提交。
//rebase -i 的第一步,就是选定交互的提交,或者说提交们,这是一个范围。
//例如下面的命令,就是选定[当前提交,当前往前数三个提交),这是一个左闭右开的集合。
git rebase -i HEAD^^^
//git rebase 立马知道develop与develop_fixbug_imageprint之间的差异。因为我们是基于develop设置rebase的。git rebase –i ,这里的”-i“是指交互模式。就是说你可以干预rebase这个事务的过程,包括设置commit message,暂停commit等等。
//比如,develop_fixbug_imageprint分支是来自develop分支,那么从test commit开始后面我们基本上都是各自发展,现在在develop_fixbug_imageprint分支上有两个commit,我们需要找一个基准,这个基准就是git需要找到哪些是你后来提交的commmit,总的有个参照。
git reabse –I develop
//rebase需要基于一个分支来设置你当前的分支的基线,这基线就是当前分支的开始时间轴向后移动到最新的跟踪分支的最后面,这样你的当前分支就是最新的跟踪分支。这里的操作是基于文件事务处理的,所以你不用怕中间失败会影响文件的一致性。在中间的过程中你可以随时取消rebase 事务
git rebase --abort
//要对最近4次提交进行重新操作,则:
git rebase -i HEAD~4
参考链接:https://blog.csdn.net/qq_32452623/article/details/79475057
https://blog.csdn.net/FightFightFight/article/details/80850328
//9、查看丢失的对象
//查看“丢失的”对象们
git fsck --lost-found
//来查看提交的内容
git show <commit>
//这个命令就近在我们眼前,运行 git status,会看到工作区和暂存区的修改,
//如果工作区有修改存在,Git 就会提示,可以通过 git add <file> 来加入暂存区以
//备下次提交,如果放弃修改,就执行 git checkout -- <file>。所以,要是哪次
//想撤回修改,恢复到上次 add 时内容 ,除了手动 Command+Z 或 Ctrl+Z ,还
//可以是使用 git checkout -- <file>,改动较多时,简直一步到位!看注释,这个操作可以将某个文件的修改从暂存区拿出去。在错误 add 不想提交的文件时,这个命令还是很有用的。
//reset 的新操作
//接着上面,工作区1.txt的修改我想下次提交,于是执行了 git add . 加入了暂存
//区,这个时候运行 git status,又发现 reset 命令的新操作 git reset HEAD <file>。
/**
误删了未合并的分支
reset --hard 的时候一不小心HEAD^写成 HEAD^^^,历史倒退太多了
等等,各种失误 & 只是任性的只是想恢复了
这些涉及到指针移动的都可以,全部通过 reflog 找回来。
恢复的流程基本都一样
第一步:git reflog找回错误操作前的 commit。
第二步:视你自己的需要,对这个提交做点什么。
下面模拟一下,reset 操作和误删分支的恢复流程,感受一下对误操作造成的心灵创伤,reflog 具有的强大治愈力。
恢复reset --hard
1.先模拟一个reset --hard操作。
2.找到 reset 操作前的 commit
3.git reset --hard <commit> 直接恢复操作前的历史。这一步使用 git reset --hard HEAD@{1}也可以,都是一个意思。
参考链接:https://blog.csdn.net/qq_32452623/article/details/79534832
*/
idea git clone报错"unable to access '……':error setting certificate verify locations"问题,终端输入:git config --system http.sslverify false
网友评论