从使用场景学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的主要内容,如果未能解决你的问题,请参考以下文章

iOS学习之git的使用

git 更新代码

如何跨场景进行交互

git常用操作

Git 更新分支到 master

笨办法学 Python(第三版)习题 7: 更多打印