• Git常用命令


    Git 工作区、暂存区和版本库

    • Working Directory:工作区,就是平时存放项目代码的地方
    • Stage/Index:暂存区/缓存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息
    • Local repository:版本库或本地仓库,就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本
    • Remote repository:远程仓库,托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换

    在这里插入图片描述

    工作流程

    git的工作流程一般是这样的:

    1. 在工作目录中添加、修改文件;

    2. 将需要进行版本管理的文件放入暂存区域;git add .

    3. 将暂存区域的文件提交到git仓库。git commit

    因此,git管理的文件有三种状态:已修改(modified),已暂存(staged),已提交(committed)

    Git 命令

    用户信息

    • 查看用户名

      git config user.name
      
      • 1
    • 查看密码

      git config user.password
      
      • 1
    • 查看邮箱

      git config user.email
      
      • 1
    • 查看配置信息

      git config --list  
      
      • 1
    • 修改用户名

      git config --global user.name "xxxx(新的用户名)"
      
      • 1
    • 修改密码

      git config --global user.password "xxxx(新的密码)"
      
      • 1
    • 修改邮箱

      git config --global user.email "xxxx@xxx.com(新的邮箱)"
      
      • 1
    • 移除用户名和邮箱

      git config --global --replace-all user.name "xxxx(用户名)"
      git config --global --replace-all uesr.email "xxxx@xxx.com(邮箱)"
      
      • 1
      • 2

    git 从master拉取代码创建新分支

    以创建一个dev分支为例

    1. 切换到被copy的分支(master),并且从远端拉取最新版本

      git checkout master
      git pull
      
      • 1
      • 2
    2. 从当前分支拉copy开发分支

      git checkout -b dev
      
      • 1
    3. 把新建的分支push到远端

      git push origin dev
      
      • 1
    4. 关联

      git branch --set-upstream-to=origin/dev dev
      
      • 1
    5. 再次拉取验证

      git pull
      
      • 1

    git拉取指定分支代码

    • branch_name 就是分支的名称

      git clone -b [branch_name] XXX
      
      • 1

    git拉取代码不覆盖本地修改的代码

    1. 先将本地代码放在暂存区:

      git stash
      
      • 1
    2. 将远程GitLab上代码拉取下来:

      git pull
      
      • 1
    3. 将1中暂存区的代码放回本地:

      git stash pop
      
      • 1
    4. 接下来继续我们平时的正常上传代码的操作即可

      // 1.提交tracked的修改
      git commit -m '操作内容'
      git push
      
      // 2.提交untracked的修改
      git add .  或者  git add -A
      git commit -m '操作内容'
      git push
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8

    git pull拉取代码失败

    解决Git报错:error: You have not concluded your merge (MERGE_HEAD exists).

    1. 保留本地更改,中止合并

      git merge --abort
      
      • 1
    2. 重新合并

      git reset --merge
      
      • 1
    3. 重新拉取

      git pull
      
      • 1

    git 如何把分支代码合并到master主分支上

    1. 首先切换到分支;

      git checkout feature
      
      • 1
    2. 使用git pull 把分支代码pull下来;

      git pull
      
      • 1
    3. 切换到主分支;

      git checkout master
      
      • 1
    4. 把分支的代码merge到主分支;

      git merge feature
      
      • 1
    5. git push推上去OK完成,现在自己分支的代码就合并到主分支上了

      git push
      
      • 1

    git将远程分支与本地分支关联

    • origin/remote_branch 是你本地分支对应的远程分支

    • your_branch 是你当前的本地分支

      git branch --set-upstream-to=origin/[remote_branch] [your_branch]
      
      • 1

    git 修改commit信息

    git 修改分支名称

    1. 修改本地分支名称

      git branch -m [oldBranchName] [newBranchName]
      
      • 1
    2. 将本地分支的远程分支删除

      git push --delete origin [oldBranchName]
      
      • 1
    3. 将改名后的本地分支推送到远程,并将本地分支与之关联

      git push --set-upstream origin [newBranchName]
      
      • 1

    git删除本地分支

    • 查看所有本地分支

      git branch
      
      • 1
    • -d是一个标志,是命令的一个选项,它是–delete。 顾名思义,它表示您要删除某些内容。

    • local_branch_name 是要删除的分支的名称。

      git branch -d [local_branch_name]
      
      • 1

    注意:
    如果分支包含未合并的更改和未推送的提交,则该-d标志将不允许删除本地分支。
    这是因为任何其他分支都看不到提交,并且 Git 正在保护您免于意外丢失任何提交数据。如果你尝试这样做,Git 会显示一个错误。如果确定要删,就如报错提示那样,改用-D标志。
    -D即-- delete --force 会强行删除本地分支,无论其合并状态如何。
    仅当您绝对确定要删除本地分支时才使用它。如果您没有将其合并到另一个本地分支或将其推送到代码库中的远程分支,您将面临丢失所做的任何更改的风险。

    git删除远程分支

    在删除远程分支时,同名的本地分支并不会被删除。

    • 查看所有分支,包括本地分支和远程分支

      git branch -a
      
      • 1
    • remote_branch_name 是要删除的远程分支的名称

      git push origin --delete [remote_branch_name]
      
      • 1

    git清理本地无效分支

    • 即清理远程已删除本地没删除的分支
      git fetch -p
      
      • 1

    git 撤销合并

    • git merge后发现冲突太多,或者合并的分支代码并不是最新,想要撤销合并(用来撤销还没commit 的merge)

      git reset --hard HEAD 
      
      • 1

    git 撤回已经提交的代码

    1. 查看所有提交的版本信息

      注意:黄色字体中 commit后面的一串码就是每一个版本号对应的码

      git log
      
      • 1
    2. 回退到指定版本

      注意:–hard 删除工作空间改动代码,撤销commit,撤销git add .

      git reset --hard 版本号
      
      • 1

      reset是指将HEAD指针指到指定提交,历史记录中不会出现放弃的提交记录。

    3. 推送代码

      • -f是一个标志,它是–force。 表示强制更新。
      git push origin master -f
      
      • 1

    git回退到上个版本

    • 恢复最近一次提交过的状态,即放弃上次提交后的所有本次修改

      git reset --hard HEAD^
      
      • 1

    git reset和git revert的区别

    1. reset是彻底回退到指定的commit版本,该commit后的所有commit都将被清除;
      而revert仅是撤销指定commit的修改,并不影响后续的commit。
    2. reset执行后不会产生记录,revert执行后会产生记录。
  • 相关阅读:
    linux 服务器类型Apache配置https访问
    【校招VIP】前端JS语言考点之px rem等单位
    nodejs毕业设计学生宿舍寝室管理系统
    python-opencv 之开运算、闭运算、形态学梯度、“礼帽”和“黑帽”
    Python的垃圾回收机制
    ArcGIS中如何再画一个已经存在的相同属性地类图斑
    【高并发】深入解析Callable接口
    Spring IOC源码:实例化前的准备工作
    中国各地级市的银行金融机构网点数据(2007-2022年)
    配电站房门禁监控、气体监测、视频监控系统 设备安装
  • 原文地址:https://blog.csdn.net/Komorebi_00/article/details/128159393