• git简介


    一、什么是Git

    Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。

    Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。
    Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

    Torvalds 开始着手开发 Git 是为了作为一种过渡方案来替代 BitKeeper,后者之前一直是 Linux 内核开发人员在全球使用的主要源代码工具。开放源码社区中的有些人觉得BitKeeper 的许可证并不适合开放源码社区的工作,因此 Torvalds 决定着手研究许可证更为灵活的版本控制系统。尽管最初 Git 的开发是为了辅助 Linux 内核开发的过程,但是我们已经发现在很多其他自由软件项目中也使用了 Git。例如 很多 Freedesktop 的项目迁移到了 Git 上。

    二、Git和SVN的区别

    传统版本集中式控制系统,与中央服务器进行交互版本控制。

     分布式版本控制,将database同步到本地,防止中央服务器瘫痪的时候无法备份文件。 

    通过以上两图的比较我们可以看出,两者的主要区别在于:

    SVN主要存储的是文件中的差异,而Git是备份完整的文件。

    此外:

    1、Git是分布式的SCM,SVN是集中式的

    2、Git每个历史版本存储完整的文件,SVN存储文件差异

    3、Git可离线完成大部分操作,SVN则相关

    4、Git有着更优雅的分支和合并实现

    5、Git有更强的撤销修改和修改版本历史的能力

    6、Git速度更快、效率更高

     三、Git的三个级别

    local>global>system 本地仓库>当前用户>system

    三种方式查看git文档:

      git config --help

      git help config

      man git -config

    以下命令配置每次提交的用户信息

    git config --global user.name  XXXXX
    git config --global user.email  XXXXX

    config的增加:

    git config --global --add user.name shaw
    git config --global --add user.email xxxxx@qq.com

    config的查看:

    git config --get user.name 
    git config --list --global

    config的删除:

    git config --global --unset user.name 

    当user.name为多个的时候,user.name后面要制定相对应的名称

    config的修改:

    git config --global user.name xxxx

    另外config还可以重新命名命令行:

    比如我们要给重新命名一下命令git log --oneline --decorate --graph --all

    则可以输入:

    git config --global alias.lol "git log --oneline --decorate --graph --all"

    这样下次只要输入 git lol 就可以达到输入之前命令的效果了。

     四、Git的工作流程

    Git有三个工作区构成

     1、工作区(working directory) 也就是你所操作的工作区
     2、暂存区(stage index)  即将提交到历史记录区的一个缓冲区
     3、历史记录区(history)   历史记录区

     Git使用40个16进制字符的SHA-1 Hash来唯一标识对象,当一个文件被提交到暂存区的时候,同时也生成一个唯一标识,这样也提高了效率。 

     五、git命令速查

    git branch 查看本地所有分支
    git status 查看当前状态 
    git commit 提交 
    git branch -a 查看所有的分支
    git branch -r 查看远程所有分支
    git commit -am "init" 提交并且加注释 
    git remote add origin git@192.168.1.119:ndshow
    git push origin master 将文件给推到服务器上 
    git remote show origin 显示远程库origin里的资源 
    git push origin master:develop
    git push origin master:hb-dev 将本地库与服务器上的库进行关联 
    git checkout --track origin/dev 切换到远程dev分支
    git branch -D master develop 删除本地库develop
    git checkout -b dev 建立一个新的本地分支dev
    git merge origin/dev 将分支dev与当前分支进行合并
    git checkout dev 切换到本地dev分支
    git remote show 查看远程库
    git add .
    git rm 文件名(包括路径) 从git中删除指定文件
    git clone git://github.com/schacon/grit.git 从服务器上将代码给拉下来
    git config --list 看所有用户
    git ls-files 看已经被提交的
    git rm [file name] 删除一个文件
    git commit -a 提交当前repos的所有的改变
    git add [file name] 添加一个文件到git index
    git commit -v 当你用-v参数的时候可以看commit的差异
    git commit -m "This is the message describing the commit" 添加commit信息
    git commit -a -a是代表add,把所有的change加到git index里然后再commit
    git commit -a -v 一般提交命令
    git log 看你commit的日志
    git diff 查看尚未暂存的更新
    git rm a.a 移除文件(从暂存区和工作区中删除)
    git rm --cached a.a 移除文件(只从暂存区中删除)
    git commit -m "remove" 移除文件(从Git中删除)
    git rm -f a.a 强行移除修改后文件(从暂存区和工作区中删除)
    git diff --cached 或 $ git diff --staged 查看尚未提交的更新
    git stash push 将文件给push到一个临时空间中
    git stash pop 将文件从临时空间pop下来
    ---------------------------------------------------------
    git remote add origin git@github.com:username/Hello-World.git
    git push origin master 将本地项目给提交到服务器中
    -----------------------------------------------------------
    git pull 本地与服务器端同步
    -----------------------------------------------------------------
    git push (远程仓库名) (分支名) 将本地分支推送到服务器上去。
    git push origin serverfix:awesomebranch
    ------------------------------------------------------------------
    git fetch 相当于是从远程获取最新版本到本地,不会自动merge
    git commit -a -m "log_message" (-a是提交所有改动,-m是加入log信息) 本地修改同步至服务器端 :
    git branch branch_0.1 master 从主分支master创建branch_0.1分支
    git branch -m branch_0.1 branch_1.0 将branch_0.1重命名为branch_1.0
    git checkout branch_1.0/master 切换到branch_1.0/master分支
    du -hs
    git branch 删除远程branch
    git push origin :branch_remote_name
    git branch -r -d branch_remote_name
    -----------------------------------------------------------
    初始化版本库,并提交到远程服务器端
    mkdir WebApp
    cd WebApp
    git init 本地初始化
    touch README
    git add README 添加文件
    git commit -m 'first commit'
    git remote add origin git@github.com:daixu/WebApp.git
    增加一个远程服务器端
    上面的命令会增加URL地址为'git@github.com:daixu/WebApp.git',名称为origin的远程服务器库,以后提交代码的时候只需要使用 origin别名即可
  • 相关阅读:
    Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?
    "=="和equals方法究竟有什么区别?
    Tomcat发生java.lang.OutOfMemoryError: PermGen space的解决方案
    HashMap原理
    springMVC
    SqlServer和Oracle修改表结构语句
    quartz定时任务时间表达式说明
    Linq to Entity 时间差作为筛选条件产生的问题
    密码学基础
    C#如何使用异步编程【BeginInvoke/EndInvoke】
  • 原文地址:https://www.cnblogs.com/shawWey/p/6698686.html
Copyright © 2020-2023  润新知