zoukankan      html  css  js  c++  java
  • GIT使用心得

    Git是一种分布式版本控制系统。Git的数据不止保存在服务器上,同时也完整的保存在本地计算机上,这种特性带来许多便利,比如你可以在完全离线的情况下使用Git,随时随地提交项目更新,而且你不必为单点故障过分担心,即使服务器宕机或数据损毁,也可以用任何一个节点上的数据恢复项目,因为每一个开发节点都保存着完整的项目文件镜像。

    分区情况:

    • workspace:本地工作区
    • staging area:本地仓库暂存区/缓存区
    • local repository:或本地仓库
    • remote repository:远程仓库

    一、本地仓库使用

    1、git init

    使用该命令初始化git本地仓库

    完成后会多出一个隐藏文件.git,这个目录存放的是本地库相关的文件。

    2、git status

    查看当前工作区状态

    3、touch 或 vim创建文件

    4、git add filename

    将修改过的文件添加到暂存区

    5、git commit -m "描述信息"

    将暂存区的文件提交到本地仓库

    6、git log

    查看日志,版本信息。

    7、git reset

    • git reset –mixed
      不回改变工作区,但是会用指定的commit覆盖暂存区,之前所有暂存的内容都变为未暂存的状态
    • git reset –soft
      不会改变暂存区,仅仅将commit回退到了指定的提交
    • git reset –hard
      使用指定的commit的内容覆盖暂存区和工作区。
    • git revert
      撤销某次操作,此次操作之前和之后的 commit 和 history 都会保留,并且把这次撤销作为一次最新的提交
    使用git的每次提交,Git都会自动把它们串成一条时间线,这条时间线就是一个分支。如果没有新建分支,那么只有一条时间线,即只有一个分支,在Git里,这个分支叫主分支,即master分支。有一个HEAD指针指向当前分支(只有一个分支的情况下会指向master,而master是指向最新提交)。每个版本都会有自己的版本信息,如特有的版本号、版本名等。
    git reset的作用是修改HEAD的位置,即将HEAD指向的位置改变为之前存在的某个版本,假设我们要回退到版本一,回退之后只保留版本一。

    二、远程仓库使用

    1、git clone

    从远处仓库拷贝文件

    2、git remote -v

    可以查看远程仓库的链接地址

    3、创建并提交文件

    4、git push

    将本地仓库的相关数据对象推送到远程仓库

    5、git pull

    在远程仓库上删除文件bbb.txt,然后将远程仓库的更改同步到本地仓库

    三、分支合并

    1、git branch

    查看所有分支,有“*”表示当前分支

    2、git checkout -b branchname

    创建新分支

    3、git branch --set-upstream-to=origin/main main

    将本地main分支与远处分支建立联系

    4、git merge

    合并分支

    四、git rebase

    场景四实际就是在场景三团队项目工作流程中增加一步Git Rebase,即在mybranch分支上完成自己的工作之后,为了让 log 记录将来更容易回顾参考,用 git rebase 重新整理一下提交记录。注意不要通过rebase对任何已经提交到远程仓库中的commit进行修改。

    git rebase命令格式大致如下:

    键入命令git rebase -i head^^^(^的个数代表前几条记录)

    五、总结

    至此,我们由简单到复杂、从实际操作到背后的基本原理,并通过命令行的方式给出了实际操作的步骤,在四大场景下给出了Git的参考用法。

    通过老师的讲解,我们知道了如何初始化本地库,进行本地库的基本操作;如何创建远程库,远程库和本地库是如何交互的。

    Git仓库管理的各种实现细节是非常重要的,在操作工程中我也遇到了许多的问题和BUG,但是一系列操作让我受益良多,希望大家共同学习,掌握Git这一得力工具!

  • 相关阅读:
    ubuntu安装jdk的两种方法
    LeetCode 606. Construct String from Binary Tree (建立一个二叉树的string)
    LeetCode 617. Merge Two Binary Tree (合并两个二叉树)
    LeetCode 476. Number Complement (数的补数)
    LeetCode 575. Distribute Candies (发糖果)
    LeetCode 461. Hamming Distance (汉明距离)
    LeetCode 405. Convert a Number to Hexadecimal (把一个数转化为16进制)
    LeetCode 594. Longest Harmonious Subsequence (最长的协调子序列)
    LeetCode 371. Sum of Two Integers (两数之和)
    LeetCode 342. Power of Four (4的次方)
  • 原文地址:https://www.cnblogs.com/tomyu123/p/13815241.html
Copyright © 2011-2022 走看看