当前位置: 首页 > article >正文

git 常用命令及问题

一、常用命令

git add filename

git add . 

git commit -m "messge"

git commit --amend   修改最近一次的提交

git push origin HEAD:refs/for/master

git clone url  

git checkout branchname 切换分支

git branch -r 查看远程仓库分支列表

git branch branchname 新建分支

git branch -v  查看分支列表

git pull 拉取远程仓库数据,并与本地指定的分支合并

git fetch 从远程仓库取来数据,但并不自动merge

git merge branchname  合并指定分支到当前分支

git pull 等同于 git fetch + git merge

git pull --rebase 等同于 git fetch + git rebase

git reset 回退版本,可以回退到指定的之前某次提交的版本,不涉及远程仓库

git reset --hard 彻底回退

git rebase branchname 变基,在指定分支上重新应用当前分支上的新提交,指定分支上会产生新提交,目的:维持线性的提交历史

git status 查看工作树状态

git log 查看提交日志

git stash 暂存未提交的修改

git stash apply 把最近的stash应用到工作区域

git stash pop 删除最近的stash

git stash list 查看stash列表

git stash drop 删除指定的stash

git config cmd

1. git init:创建空仓库/重新初始化已存在仓库

2. git config --local user.name zhaohualei 设置 git name

   git config --local user.email zhaohualei@hellobike.com 设置 git email

git config --list     检查已有的配置信息

二、 git 问题

    1. Q:  error: You have not concluded your merge (MERGE_HEAD exists).

    A: 1)git merge --abort 放弃合并

              2)pull 之前本地先提交代码

              3)用 git pull --rebase

    2. Q: 修改最近一次的提交

        A:   1) git add .

              2)  git commit --amend

              3)  git push origin HEAD:refs/for/master

    3. Q:  ERROR: missing Change-Id in commit message footer

    A: 1)  gitdir=$(git rev-parse --git-dir); scp -p -P 29418 zhaohualei@git.cheyaoshicorp.com:hooks/commit-msg  ${gitdir}/hooks/

        2) git commit --amend 

        3) git push origin HEAD:refs/for/master

    B: 1) 备份本地修改的内容

        2) git fetch --all

        3) git reset --hard origin/master

        4) git pull

        5)     备份内容替换本地内容,而后正常操作提交代码

    4.  Q:  CONFLICT (content): Merge conflict in README.md, Automatic merge failed; fix conflicts and then commit  the result.

  A: 1)  git status 查看文件状态

    2)vi filename   修改冲突文件

    3)  git add filename 再重新提交 

    4)  git commit -m "conflict description" 

    5)  git push origin HEAD:refs/heads/master

5. Q: 分支合并 注意事项

    A:  分支都提交之后,再合并

6. Q: git rebase -i 合并多个提交为 一个提交

    A: git rebase -i  选择要修改的提交 git rebase -i HEAD~2

     编辑 pick 为 squash,但保留第一次提交为pick,squash:是这个提交会被合并前一个提交

     解决冲突后, git add .

     git rebase --continue

    git push -f origin

7. Q: git stash、git add 区别

A: add 是为了 commit

stash 是为了方便操作,例如:切换分支时,保持工作区域的干净

9. Q: git merge、git rebase 区别

A: merge 从分支会多出一次commit,且产生了新的节点;rebase 从分支未产生新的commit,且没有形成新的节点

merge 提交是非线性的; rebase 提交是线性的

    

    


http://www.kler.cn/a/419993.html

相关文章:

  • Spark常问面试题---项目总结
  • [linux应用]emby媒体服务器软件简单部署和使用
  • Python中的函数参数
  • 8. Debian系统中显示屏免密码自动登录
  • 基于Vue实现的移动端手机商城项目 电商购物网站 成品源码
  • 遇到问题:hive中的数据库和sparksql 操作的数据库不是同一个。
  • 多级缓存设计实践
  • Cannot resolve symbol ‘ActivityThread‘ | Android 语法
  • 【目标跟踪】AntiUAV600数据集详细介绍
  • avcodec_alloc_context3,avcodec_open2,avcodec_free_context,avcodec_close
  • 多功能察打一体多旋翼无人机技术详解
  • 摆脱复杂配置!使用MusicGPT部署你的私人AI音乐生成环境
  • [在线实验]-ActiveMQ Docker镜像的下载与部署
  • 【Oracle11g SQL详解】UPDATE 和 DELETE 操作的正确使用
  • HCSIF: 中国区域2000-2022年高时空分辨率(500m)SIF数据集
  • 电子电气架构 --- E/E(电子电气架构)的重新定义
  • 深度学习案例:ResNet50模型+SE-Net
  • C语言——实现转换成大写
  • Matlab数字信号处理——音频信号处理与分析GUI
  • 开源鸿蒙system ability manager关键属性解析
  • vue.js学习(day 18)
  • Vue 3 Hooks 教程
  • 【Gitlab】CICD使用minio作为分布式缓存
  • 数字图像处理(11):RGB转YUV
  • Flink四大基石之CheckPoint(检查点) 的使用详解
  • C++学习日记---第16天