当前位置: 默认 > git 常用命令

git 常用命令

2022-01-20 分类:默认 作者:admin 阅读(56)

查看本地分支:git branch
查看远端分支:git branch -r
刷新远端分支:git remote update origin --prune

拉取远程分支并创建本地分支:git checkout -b 本地分支名x origin/远程分支名x (使用该方式会在本地新建分支x,并自动切换到该本地分支x。)

拉取:
1、Git fetch:Git fetch会将数据拉取到本地仓库 - 它并不会自动合并或修改当前的工作。
2、git pull:git pull是从远程获取最新版本并merge到本地,会自动合并或修改当前的工作。相当于git fetch 和 git merge。

git 强行pull并覆盖本地文件 : 这招很好用

git fetch --all

git reset --hard origin/master

git pull

储藏:
将新的储藏推送到栈上
git stash save "save message"
从git栈中获取到最近一次stash进去的内容,恢复工作区的内容。获取之后,会删除栈中对应的stash
git stash pop
查看储藏
git stash list
将你刚刚储藏的工作重新应用:git stash apply。 如果想要应用其中一个更旧的储藏,可以通过名字指定它,像这样:git stash apply stash@{2}。 如果不指定一个储藏,Git 认为指定的是最近的储藏。
要移除它,你可以运行 git stash drop,加上你希望移除的储藏的名字
git stash drop stash@{0}
清空git储藏栈
git stash clear

关联与推送

情况1 : 本地已经建立好仓库,需要将本地仓库同步至远程仓库

添加本地仓库与远程仓库关联:git remote add origin XXX.git

如果关联错了,修改本地仓库所关联的远程仓库的地址
1 git remote //查看远程仓库名称:origin
2 git remote get-url origin //查看远程仓库地址
3 git remote set-url origin https://github.com/developers-youcong/Metronic_Template.git ( 如果未设置ssh-key,此处仓库地址为 http://… 开头)

 强制推送到远程仓库,且覆盖远程代码库(远程库会被情况,完全同步本地

git push -f --set-upstream origin master:master

情况2 : 本地没有仓库,可以远端建立仓库后,再git clone到本地使用

回滚

git reflog develop
git reset --hard e377f60e28c8b84158

goland git操作:
还原提交:代码和没写一样,提交记录新增一条还原。
撤销提交:和没提交一样,改动的文件恢复未提交状态。
删除提交:和没写一样,代码丢失,提交日志也丢失。可以通过命令行恢复

# git操作 分支A只合并部分提交到分支B
# 不要有没被版本控制的文件
1,切换到分支a git checkout a
2,查看分支b的提交历史 git log b --oneline
3,推荐自动提交:选择合并提交 git cherry-pick abc1234 def5678 (提交自动合并到分支a,保留提交标题和时间)
4,手动提交:(未测试)
git cherry-pick --no-commit abc1234 这是提交的变化会出现到分支a,未提交状态)
git commit --amend --no-edit --date "$(git show -s --format=%ci abc1234)" -m "$(git show -s --format=%s abc1234)" (手动修改提交信息,保留原分支提交日期和标题 )

# 查看0索引的文件
git stash show 0
internal/dbSql/dbSql_init.go | 2 +-
pcf_producer/pcf_ueinfo.go | 1 +
pcf_redis_db/pcf_db.go | 2 +-
pcf_service/pcf_init.go | 641 ++++++++++++++++++++++---------------------
4 files changed, 324 insertions(+), 322 deletions(-)
# 查看差异详情
git stash show -p stash@{0}

更多命令:http://www.ruanyifeng.com/blog/2015/12/git-cheat-sheet.html


git的合并逻辑:

Git 使用“三路合并”算法,它需要三个关键点:

  1. Base(共同祖先):分支 A 和 B 分叉时的那个共同提交

  2. Ours(当前分支):你当前所在的分支(比如分支 A)

  3. Theirs(合并分支):你要合并进来的分支(比如分支 B)

冲突的产生条件

当以下情况发生时,Git 会产生合并冲突:

  • 相同文件的相同区域在 Base → A 和 Base → B 的变更不一致

  • Git 无法自动判断应该保留哪个变更

合并时的处理规则

情况一:无冲突的变更

  • 如果 A 修改了文件 X,B 修改了文件 Y → 自动合并

  • 如果 A 和 B 修改了文件 X 的不同区域 → 自动合并

情况二:冲突的变更(你的问题场景)

  • 如果 A 和 B 修改了文件 X 的相同区域,但内容不同 → 产生冲突

总结

  • 合并冲突的解决与提交时间无关

  • Git 基于内容变更共同祖先来判断冲突

  • 冲突的产生是因为 Git 无法自动决定哪个变更更"正确"

  • 最终决定权在开发者手中,需要手动解决冲突

 

「三年博客,如果觉得我的文章对您有用,请帮助本站成长」

赞(0) 打赏

支付宝
微信
0

支付宝
微信
标签:

上一篇:

下一篇:

你可能感兴趣

共有 0 - git 常用命令

博客简介

精彩评论

  • admin(6年前 (2020-03-09))

    分别用不同厚度的筏板定义,画图后这设置筏板变截面处理。 http://f.fwxgx.co...

    评:新文章!
  • admin(6年前 (2020-03-09))

    分别用不同厚度的筏板定义,画图后这设置筏板变截面处理。 http://f.fwxgx.co...

    评:新文章!
  • admin(6年前 (2020-03-09))

    新增一个框架图! http://biji.jinli.vip/wp-content/upl...

    评:新文章!
  • 一位WordPress评论者(6年前 (2020-02-13))

    嗨,这是一条评论。 要开始审核、编辑及删除评论,请访问仪表盘的“评论”页面。 评论者头像来自...

    评:世界,您好!