从使用场景学Git
Posted 迹说
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从使用场景学Git相关的知识,希望对你有一定的参考价值。
说明
1、在[…]中的内容,需要根据实际情况进行修改
1、克隆工程
将远程的数据复制一份到本地
#【仓库copy地址】
git clone [git@rep.xx.com:zoeminghong/hello.git]
2、本地新建Git工程
现在打算将本地的工程,放到Git仓库进行托管了,并且远程Git仓库已经创建了该项目的工程
#本地初始化工程,会生成一个.git文件
git init
#将本地的工程与远程仓库中的项目进行关联(不用关心项目名不一致的问题)
#此时本地工程与远程仓库已经建立了联系
git remote add origin [git@rep.xx.com:zoeminghong/hello.git]
#将本地所有文件添加到Git中,进行监管
git add .
#将内容提交 【提交注释】
git commit -m "[...]"
#将本地的内容同步到远程仓库中
git push -u origin master
3、本地代码与远程代码冲突问题
本地代码未commit的前提下,解决与远程代码冲突问题
#将当前修改进行暂存起来
git stash
#获取最新的远程仓库代码
git pull
#恢复暂存的内容
git stash pop
本地代码已经commit后,解决与远程代码冲突问题
# 获取远端库最新信息 【分支名称】
git fetch origin [master]
# 做比较
git diff [本地分支名] origin/[远程分支名]
# 拉取最新代码,同时会让你merge冲突
git pull
方法2
# 获取最新代码到tmp分支上 [远程的分支:本地分支]
git fetch origin [master:tmp]
# 当前分支与tmp进行比较
git diff tmp
# 修改冲突部分,进行本地commit操作
git add .
git commit -m "[...]"
# 将tmp中内容合并到当前分支中
git merge tmp
# 删除分支
git branch -d tmp
4、回退到上一个commit节点,无log记录
当前内容没有commit的情况下
# 当前HEAD,返回到上一次commit点,不会有任何日志记录
git reset HEAD --hard
最近内容已经commit的情况下
git reset HEAD^ --hard
5、回退到上一个commit节点,存在log记录
当前内容没有commit的情况下
# 当前HEAD,返回到上一次commit点
git revert HEAD
最近内容已经commit的情况下
git revert HEAD^
6、切换到指定commit节点
不存在log记录
# 获取所有的HEAD更改信息的sha1值
git reflog
# 切换至指定的sha1节点
git reset --hard [sha1值]
7、删除文件
保留副本操作
git rm --cache [文件名]
还原操作
git reset HEAD [文件名]
直接文件删除
git rm [文件名]
还原操作
git reset HEAD [文件名]
git checkout -- [文件名]
8、本地分支与远程分支相连
本地创建了一个分支,远程也有一个分支,进行两者关联
git checkout -b [本地分支名] origin/[远程分支名]
9、Tag使用
我们在开发的时候,可能存在线上发布了一个版本,需要给这个版本代码打上一个标签,到时候可以方便回退到这个版本
# 创建tag 【tag名】
git tag v1.0
# 查看存在的tag
git tag
# 将tag更新到远程
git push origin --tags
接下来就讲解回退到具体的tag
# 保存当前编程环境
git stash
# 切换回某个tag(v1.0)
git show v1.0
#【sha1】
git reset --hard [2da7ef1]
# 创建分支来保存tag的数据,tag只是一个节点的标记,无法承载数据的修改记录,【分支名】
git checkout -b [bill]
# 接着你就可以在这里改啊改了
切换回主干或其他分支
# 切换分支
git checkout master
# 日志记录
git reflog
# 显示stash列表
git stash list
# 恢复之前的工作环境代码
git stash apply
# 删除stash
git stash drop
分支与主干合并
git add .
git commit -m "v1.1"
# bill分支合并到当前分支【分支名】
git merge [bill]
10、关于代码的比较
# 显示暂存区和工作区的差异
$ git diff
# 显示暂存区和上一个commit的差异【文件名】
$ git diff --cached [hell.txt]
# 显示工作区与当前分支最新commit之间的差异
$ git diff HEAD
# 显示两次提交之间的差异【分支名】
$ git diff [first-branch]...[second-branch]
更多内容可以关注微信公众号,或者访问AppZone网站
以上是关于从使用场景学Git的主要内容,如果未能解决你的问题,请参考以下文章