git应用场景(进阶)

Git场景运用-CSDN博客

  • 专有名词
    Workspace:工作区
    Index / Stage:暂存区
    Repository:仓库区(或本地仓库)
    Remote:远程仓库
  • HEAD
    HEAD,指向当前分支最新提交点。所处分支变化,或产生新提交,HEAD跟着变。
  • add、commit
  • branch

展示分支,切换分支,创建分支,删除分支。

git branch列出所有本地分支
git branch -r列出所有远程分支   
git branch -a列出所有本地分支和远程分支
git branch [branch-name]新建分支,留在当前分支
git checkout -b [branch-name]新建分支,切换到该分支
git branch --track [branch][remote-branch]新建分支,与指定远程分支建追踪关系
git checkout [branch-name]切换指定分支,更新工作区
git branch -d [branch-name]删除分支
git push origin --delete [branch-name]删除远程分支
  • merge
    实际开放,从master分支切出一分支,开发完需求,经R3,R4,R5的commit记录,开发完需合入master,用merge。
    git fetch [remote]merge前先拉远程仓最新代码
    git merge [branch]合并指定分支到当前分支

    merge后,会出现conflict,主因两用户修改同文件同区域。如下

  • rebase

     

    rebase又称衍合,合并另种选择。

    开始阶段,处于new分支,执行git rebase dev,新commit在master分支重演一遍,checkout切换回new分支。这点与merge一样,合并前后所处分支并没改变。git rebase dev,通俗解释就是new分支想在dev肩膀继续。rebase也需手动解决冲突。

    rebase与merge区别

    两个分支,test和master,提交如下:

    master执行git merge test,如下:

     

    master执行git rebase test,如下:

    A---B---D---E---C'---F' test, master

    merge生成新节点,之前提交分开显示。而rebase不生成新节点,两分支融合成线性提交。

    想要干净,没merge commit线性历史树,选择git rebase

    想保留完整历史记录,避免重写commit history风险,选择用git merge

  • reset
    reset把当前分支指向另个位置,相应变动工作区和暂存区。

     

    git reset —soft [commit]

    只变提交点,暂存区和工作目录内容都不变

    git reset —mixed [commit]

    变提交点,同时变暂存区内容

    git reset —hard [commit]

    暂存区、工作区内容都修改与提交点一致状态

    git reset --hard HEAD

    工作区回上次提交时状态

  • revert
    git revert用新提交消除历史提交所做任何修改。

    revert与reset区别

    git revert用新commit回滚之前commit,git reset直接删除指定commit。

    回滚效果差不多。日后merge老版本有区别。git revert用逆向commit“中和”之前提交,日后合并老branch,改变不再出现,减少冲突。git reset把commit在某branch上删除,和老branch再次merge,被回滚commit还会被引入,产生冲突。

    git reset 把HEAD向后移动,而git revert是HEAD继续前进,新commit内容和要revert内容正好相反,抵消revert内容。
  • push
    上传本地仓分支到远程仓分支,实现同步。

    git push [remote][branch]

    上传本地指定分支到远程仓库

    git push [remote] --force

    强行推送当前分支到远程仓库,即使有冲突

    git push [remote] --all

    推送所有分支到远程仓库

  • 其他命令

    git status

    显示有变更文件

    git log

    显示当前分支版本历史

    git diff

    显示暂存区和工作区差异

    git diff HEAD

    显示工作区与当前分支最新commit间差异

    git cherry-pick [commit]

    选择commit,合并进当前分支

  • 21
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
`git init` 命令用于在当前目录中初始化一个新的 Git 仓库。这个命令会创建一个名为 `.git` 的隐藏文件夹,其中包含 Git 所需要的全部文件和目录。通过 `git init` 命令,可以将一个普通的文件夹转换成一个 Git 仓库,从而使用 Git 管理文件夹中的文件。 `git init` 命令的应用场景主要有两种: 1. 新项目的开始:如果你正在开始一个全新的项目,你可以使用 `git init` 命令在本地创建一个新的 Git 仓库。在该仓库中,你可以使用 Git 来管理项目的版本控制和历史记录,包括代码的提交、分支管理、合并等等。这样可以让你更好地组织和协作开发代码,同时保留所有历史版本的备份。 2. 对已有项目的引入 Git 版本控制:如果你已经有一个项目,并且想要将它引入 Git 版本控制中,你可以使用 `git init` 命令来初始化一个新的 Git 仓库。在该仓库中,你可以使用 `git add` 命令将项目中的文件添加到暂存区中,然后使用 `git commit` 命令提交这些修改到 Git 仓库中。这样可以让你更好地管理项目的版本控制和历史记录,同时方便地与其他人协作开发。 需要注意的是,`git init` 命令只是在本地创建了一个新的 Git 仓库,如果你想要将该仓库与其他人共享或备份,你需要将它推送到远程 Git 仓库中。同时,Git 仓库中的文件和历史记录应该被定期地备份,以避免数据丢失。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值