zoukankan      html  css  js  c++  java
  • Git 简单使用

    Git 简单使用步骤

    记录 Git 应用的逻辑步骤和常用命令

    开始篇

    使用 Git 管理项目(不一定是代码)有两种方式开始,第一种从远程到本地,即先建立远程库后 git clone 到本地目标路径,此种方式用于新建一个空项目之后与本地路径关联起来。第二种从本地到远程,即先建立本地项目并可以任意先编辑,待到准备同步到远程库时,依次使用指定命令初始化本地仓库、将文件新增至版本库、提交更改、关联远程库、推送至远程库。

    第一种方式逻辑上感觉比较“顺”,第二种方式更适合工作还没有具体规划,先在本地任意编辑,待到合适时候再创建并推送上远程库。

    第二种方式的逻辑与命令:

    cd xxx (切换到要创建 Git 管理的根目录)
    git init(初始化,将当前目录设置为 Git 可管理的目录)
    git add <file> (将文件添加到版本库,即将该文件纳入管理范围)
    git commit -m <comment> (提交所有 add 到版本库)
    git push <远程库名称> <分支名称> (将 commit 之后的内容更新到远程库)
    

    关系篇

    有一个图片比较好的描述了本地、自有远程库和他人库的关系
    forking工作流

    所以,使用 Git 时最多的工作就三步,编辑文件git add <file>git commit

    分支是 Git 的灵魂之一,创建库时默认是 master 分支,一个人的、简单的工作可以一直在该分支上提交更新没有问题,但即便是一个人,某天希望开发一个新功能又不想影响当前工作,最好的版本就是开辟出一个分支,在分支上进行任意操作,而不会影响主线 master 的任何内容,多么完美。

    随时使用 git branch <branch name> 创建一个分支,使用 git checkout <branch name> 切换到该分支进行工作,以后再有 git addgit commit 时也不会影响到其他分支,分支也可以使用 git push 提交到远程库,Git 将在远程库自动创建该分支。

    本地目录是同一个目录,难道在 B 分支上创建或删除一个文件,不会影响 A 分支吗?

    我也纳闷儿和担心,可以看看切换分支时工作目录有什么变化。先创建一个名叫 branchMD 的分支并切换到该分支下,删除 master 分支下的 EchoWord.go 文件,新增 addNewBranch.mdmeta 两个文件(两个文件没有任何实际意义,只为与 master 分支内容区别开来),在新建分支下变更提交到版本库。

    现在拥有了两个分支,使用 git checkout <branch name> 切换并观察本地目录看一下

    master分支
    上图是 master 分支目录内容

    branchMD分支
    上图是 branchMD 分支目录内容

    可以看到,切换不同分支,工作目录中内容自动变了,Git 为我们做了很多贴心的事情。

    随着工作需要,很多分支编辑后自然需要合并到一处。当确认了分支 B 的所有变更,要把 B 合并到 A 时,就先切换到 A 分支,然后运行合并命令,如将刚才的分支合并到 master,但要注意,此操作将认为是认可了 B 从创建后的所有“变更”,并将这种变更后的结果应用到 A 分支上。刚才说到,branchMD 分支移除了一个文件,新增了两个文件,那么如果合并成功,master 分支中的唯一文件 EchoWord.go 也应该是被移除,并新增两个文件。

    git checkout master
    git merge branchMD
    

    将变更 git push 到远程库看一下结果,master 分支也变得和 branchMD 内容一样了。
    远程库中master分支结果

    分支没用时,删除它,Git 鼓励大量创建和使用分支来进行工作,就像我们做word时候的副本。

    命令篇

    • 创建
      • (将本地目录)初始化为一个 Git 的工作区:git init
    • 添加与提交
      • 从工作区添加文件到版本库:git add <file-name>
      • 从工作区添加所有文件到版本库:git add .
    • 撤销
      • 丢弃工作区的修改:git checkout -- <file>
      • 丢弃暂存区修改将工作区回复到最新(后)保存的一个版本:git reset HEAD <file>
      • 版本回退到指定版本:git reset --hard <commit_id>
    • 删除
      • 从版本库中删除文件:git rm <file>
      • 用版本库中文件替换工作区内容(与丢弃工作区修改操作的结果一样):git checkout -- <file>
    • 关联
      • 本地仓库与远程库关联:git remote add <本地仓库名称> <远程库地址:git@gitee.com:xxx>
      • 版本库推送到远程库:git push <option> <与远程库关联的本地仓库名称> <分支名称>
      • 从远程库拉取内容更新本地库:git pull <与远程库关联的本地库名称> <分支名称>
    • 分支
      • 查看分支:git branch
      • 创建分支:git branch <branch-name>
      • 切换分支:git checkout <branch-name>
      • 创建+切换:git checkout -b <branch-name>
      • 合并分支到指定分支:git merge <待合并的分支>
      • 删除分支:git branch -d <branch-name>

    一些链接和引用

  • 相关阅读:
    OLAP ODS项目的总结 平台选型,架构确定
    ORACLE ORA12520
    ORACLE管道函数
    ORACLE RAC JDBC 配置
    ORACLE RAC OCFS连接产生的错误
    ORACLE 启动和关闭详解
    OLAP ODS项目的总结 起步阶段
    ORACLE RAC 配置更改IP
    ORACLE RAC OCR cann't Access
    ORACLE RAC Debug 之路 CRS0184错误与CRS初始化
  • 原文地址:https://www.cnblogs.com/cinlap/p/10469291.html
Copyright © 2011-2022 走看看