Git基础

本文详细介绍了Git的基本操作,如将文件加入暂存区、提交版本、查看日志、分支管理(创建、切换、合并、重置)、解决分支冲突、多人合作(远程仓库、拉取与推送)以及常见操作技巧。
摘要由CSDN通过智能技术生成

Git

基础操作

将工作区文件加入暂存区:git add <filename>

将暂存区提交版本库:git commit “infomation”

查看提交日志:git log

切回某条记录

  • 比如main分支保存了10条记录,然后此刻想回到第二条,可以新建并进入一个分支git checkout -b dev ,然后将分支转往第二条git reset --hard <第二条的hash值>,你的工作区就会变成第二条的状态。
  • 但是此刻你修改提交的并不会与main分支产生交互,因为此刻你处在dev分支中,你可以合并两条分支,使用git rebase main,这会将当前的dev分支合并到main分支。
  • 如果你的dev中的文件与main中的不一致,他会要求你先进行修改,会给你标记出来
打开冲突的文件,找到有冲突的地方。

Git会在冲突的地方添加一些提示信息,例如<<<<<<<,=======,和>>>>>>>。

在<<<<<<<和=======之间是目标合并分支的内容,=======和>>>>>>>之间的是当前分支的内容。你需要决定保留哪些内容,或者如何修改这些内容以解决冲突。

解决冲突后,删除Git添加的提示信息,然后保存文件。

使用git add <冲突文件>命令标记冲突已经解决。

最后,使用git rebase --continue命令继续进行合并操作。

然后你就完成了记录回溯和合并。

分支

创建:git branch dev

切换分支:git checkout dev

合并分支:处在当前分支上,然后另外一个分支内容合并到当前进度:git merge 目标分支,此操作得到完整树型项目。

复制合并:直接将当前的操作给复制一份与另外一份进行合并:git rebase xx目标分支 xx合并分支,此操作将把合并分支转移到目标分支底下。

HEAD:当前的指向,可以直接使用checkout进行切换,让其指向某一个具体的记录

相对引用:~向上移动一个提交记录,<num>向上移动多个提交记录如:~3

双节点切换:^必须在双节点的情况下使用,默认是第一节点,后跟数字去往父节点,与~连用,如git checkout main~^2~8 将head更改至main分支的前一个节点的第二父节点的前第8节点

切换分支引用:git branch -f xx分支 xxx记录,将xx分支切换到xx记录

舍弃分支记录更改分支位置:git reset —hard xxx记录

撤销本地历史:git reset xxx目标记录:直接将本地的的分支指向你希望的记录即可

撤销远程历史:git revert xxx撤回记录:参数是你需要撤回的记录

单独提交记录:git cherry-pick:你可以单独提交几段记录到当前的记录下

rebase合并交互式:git rebase -i xxx记录,将当前分支的操作合并到另外一条分支,以-i模式打开,交互式,直接排序和删除

修改本次提交:git commit –amend:将会新建一次提交来覆盖当前所在的记录

标签:git tag V1 xxx记录 ,将会把xxx记录打上标签,如果不指定记录,将会以现在的head

离某个记录最近的标签:git describe xxx省略代表当前位置:返回:标签名_n(距离几次记录)_当前记录的hash

多人合作

远程仓库:git clone 复制远程地址

远程仓库的分支将以:o/main形式展示,o为仓库名称,main为分支,

  • 不可直接操作远程分支,如果指定,将会被分离出来,会形成haed的形式

获取数据:git fetch 从远程仓库更新本地缺失的提交记录,更新远程分支指针

将远程和本地进行合并:git pull,将会拉取远程的记录,然后与本地记录进行合并

拉取最新远程仓库并且合并:git pull -–rebase

  • 对远程仓库进行推送时,需要先拉取远程仓库确保本地分支都基于最新的远程仓库,然后再推送。

推送分支等:git push,只会推送当前处在的分支

本地的main在最初clnoe的时候就被添加了跟踪o/main的命令,可以使用git checkout -b newLine o/main创建跟踪新分支并且切换过去,也可以使用git branch -u o/main newLine来跟踪o/main,如果处在newLine分支可以省略

git push的参数:如果不添加,将会默认推送当前分支,如果远端没有此分支,将会自动创建该分支,

  • git push origin main<记录点>推送那一条分支 test
  • git push origin newLine<记录点,支持一切表示记录点的>:main本地的记录点推送到远程的main分支
  • 推送空的到远程,将会删除这条分支

git fetch的参数:不添将会默认将远程的与本地进行匹配,不存在就本地自动创建,不会更改本地的分支,而是以记录的形式存在

  • git fetch origin foo<远程地址记录点>:main将远程记录点拉取到本地的o/main分支
  • 拉取空的到本地将会在当前记录创建此条分支

Tips

操作:如果进行第三步,发现第二步有了些许更改

  • 可以使用git rebase将顺序改变,使用git commit –amend重新提交该步的数据,这将会修改第二步,然后使用git rebase重新将其顺序恢复,
  • 可以使用git cherry-pick,先切换到1,然后建立分支,将第二部pick过来,然后amend,然后在pick3

步,然后使用git rebase重新将其顺序恢复,

  • 可以使用git cherry-pick,先切换到1,然后建立分支,将第二部pick过来,然后amend,然后在pick3
  • 18
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值