git 订阅
Git(读音为/gɪt/)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。 [1]  Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。Torvalds 开始着手开发 Git 是为了作为一种过渡方案来替代 BitKeeper [1]  。 展开全文
Git(读音为/gɪt/)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。 [1]  Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。Torvalds 开始着手开发 Git 是为了作为一种过渡方案来替代 BitKeeper [1]  。
信息
软件授权
GNU General Public License version 2.0 [4]
软件名称
Git
更新时间
2020-04-19 [2]
软件版本
2.26.2 [2]
软件平台
Windows、Mac OS X、Linux/Unix [2]
软件语言
C、Shell、Perl、Tcl、Python、Makefile等 [3]
GIT特点
分布式相比于集中式的最大区别在于开发者可以提交到本地,每个开发者通过克隆(git clone),在本地机器上拷贝一个完整的Git仓库。下图是经典的git开发过程。 Git的功能特性:从一般开发者的角度来看,git有以下功能:1、从服务器上克隆完整的Git仓库(包括代码和版本信息)到单机上。2、在自己的机器上根据不同的开发目的,创建分支,修改代码。3、在单机上自己创建的分支上提交代码。4、在单机上合并分支。5、把服务器上最新版的代码fetch下来,然后跟自己的主分支合并。6、生成补丁(patch),把补丁发送给主开发者。7、看主开发者的反馈,如果主开发者发现两个一般开发者之间有冲突(他们之间可以合作解决的冲突),就会要求他们先解决冲突,然后再由其中一个人提交。如果主开发者可以自己解决,或者没有冲突,就通过。8、一般开发者之间解决冲突的方法,开发者之间可以使用pull 命令解决冲突,解决完冲突之后再向主开发者提交补丁。从主开发者的角度(假设主开发者不用开发代码)看,git有以下功能:1、查看邮件或者通过其它方式查看一般开发者的提交状态。2、打上补丁,解决冲突(可以自己解决,也可以要求开发者之间解决以后再重新提交,如果是开源项目,还要决定哪些补丁有用,哪些不用)。3、向公共服务器提交结果,然后通知所有开发人员。优点:适合分布式开发,强调个体。公共服务器压力和数据量都不会太大。速度快、灵活。任意两个开发者之间可以很容易的解决冲突。离线工作。缺点:资料少(起码中文资料很少)。学习周期相对而言比较长。不符合常规思维。代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息。
收起全文
精华内容
参与话题
问答
  • git

    千次阅读 多人点赞 2019-05-30 19:46:13
    git入门 git简介 git安装 windows计算机安装git linux 计算机安装git git使用 git配置 git基本认识 git是一个分布式的版本控制系统。

    git简介

    • git是一个分布式的版本控制系统。例如我们一个小团队合作开发一个项目,我们可以先建立一个远程仓库,需求分析,搭建大体框架,将项目框架上传至远程仓库,队员可以git clone项目,各自完成自己负责的部分,完善项目等,写好之后还可以比对之前的版本,本地项目写好之后上传至远程仓库,出现错误还可以版本回退等等,总之,git很强大,非常好用。

    git安装

    windows计算机安装git

    linux 计算机安装git

    • 例如Ubuntu:sudo apt install git即可。

    git实用教程

    git配置

    • 用户配置,相当于个人身份证,每一次 Git 的提交都会使用这些信息,并且它会写入到你的每一次提交中,不可更改:
      git config --global user.email "xx@xxx.com "
      git config --global user.name "xxx"
      
    • 查看git配置
      git config --list
      

    认识使用git

    • git图解
      git中的数据流与存储级别

    git的理解及简单使用

    • git可分为工作区、暂存区、本地仓库和远程仓库
      • 工作区:git版本库所在的目录即为工作区。
      • 暂存区:英文叫stage, 或index。一般存放在 “.git目录下” 下的index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。
      • 版本库:工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。
      • 远程仓库:建立在远程服务器上的版本库。
      • git init在当前目录初始化一个版本库
      • git add . 提交工作区所有变化到暂存区
      • git add -u提交工作区更改过的文件到暂存区
      • git commin -m "提交说明"将暂存区文件提交到版本库
      • git pull [shortname] [分支]拉取远程仓库到本地仓库
      • git push [shortname] [分支]将本地仓库推送到远程仓库
      • 注意origingit clone的默认shortname

    git常用命令

    git官方电子书

    • git 基本使用:

      • git init ——初始化仓库
      • git status ——查看仓库的状态
      • git log ——查看提交日志
      • git diff ——查看更改前后的差别
    • git 分支操作:

      • git branch ——显示分支表
      • git checkout -b "分支名" ——创建、切换分支
      • git merge ——合并分支
      • git log -graph——以图表形式查看分支
    • git 更改提交的操作

      • git reset——回溯历史版本
      • git commit --amend ——修改提交信息
      • git rebase -i——压缩历史
    • git 推送至远程仓库

      • git remote add [shortname] [url] ——添加远程仓库
      • git push [shortname] [分支名] ——推送至远程仓库
    • git 从远程仓库获取

      • git clone——获取远程仓库
      • git pull [shortname] [分支名]——获取最新的远程仓库分支
    • git使用技巧:

      • git查看远程仓库:
        git remote
        
      • git 更改远程仓库:
        git remote rm origin [url]
        git remote add origin [url]
        
      • git创建远程仓库:

        在Linux服务器上创建git仓库

    容易出现的一些错误

    • git push时出现错误:
      git@github.com: Permission denied (publickey).
      fatal: Could not read from remote repository.

      Please make sure you have the correct access rights and the repository exists.

      即:git@github.com: Permission denied (publickey).
      fatal: 无法读取远程仓库。

      • 原因:缺少公钥
      • 解决方法:生成公钥并添加至你的github,可以参考官网的这篇文章
    • git push时出现错误:
      ERROR: Permission to commonyzb/job.git denied to deploy key
      fatal: Could not read from remote repository.

      • 原因:错误,允许此git仓库部署密钥。因为之前的密钥只绑定了之前的仓库,这个仓库就不能用了。
      • 解决方法:将此公钥绑定到账号上,而不是某一个仓库,在账号-setting中绑定公钥。
    • git pull时出现错误:
      fatal: refusing to merge unrelated histories

      • 原因:远程库觉得和本地库不相干,拒绝了请求,参考这篇文章
      • 解决方法:强制合并分支
      	git pull origin master --allow-unrelated-histories
      
    展开全文
  • Git fetch和git pull的区别

    万次阅读 多人点赞 2012-06-14 20:56:10
    Git中从远程的分支获取最新的版本到本地有这样2个命令:1.git fetch:相当于是从远程获取最新版本到本地,不会自动merge git fetch origin mastergit log -p master..origin/mastergit merge origin/maste...

    原文: http://www.tech126.com/git-fetch-pull/ 

    Git中从远程的分支获取最新的版本到本地有这样2个命令:
    1. git fetch:相当于是从远程获取最新版本到本地,不会自动merge

    
     

        
    git fetch origin master
    git log -p master..origin/master
    git merge origin/master

        以上命令的含义:
       首先从远程的origin的master主分支下载最新的版本到origin/master分支上
       然后比较本地的master分支和origin/master分支的差别
       最后进行合并
       上述过程其实可以用以下更清晰的方式来进行:

    
     

    git fetch origin master:tmp
    git diff tmp 
    git merge tmp

        从远程获取最新的版本到本地的test分支上
       之后再进行比较合并
    2. git pull:相当于是从远程获取最新版本并merge到本地

    
     

    git pull origin master

    上述命令其实相当于git fetch 和 git merge
    在实际使用中,git fetch更安全一些
    因为在merge前,我们可以查看更新情况,然后再决定是否合并。

    展开全文
  • Git撤销&回滚操作

    万次阅读 多人点赞 2017-05-02 19:32:00
    开发过程中,你肯定会遇到这样的场景:场景一: 糟了,我刚把不想要的代码,commit到...撤销上述场景一,在未进行git push前的所有操作,都是在“本地仓库”中执行的。我们暂且将“本地仓库”的代码还原操作叫做“撤

    开发过程中,你肯定会遇到这样的场景:

    场景一:

    糟了,我刚把不想要的代码,commit到本地仓库中了,但是还没有做push操作!

    场景二:

    彻底完了,刚线上更新的代码出现问题了,需要还原这次提交的代码!

    场景三:

    刚才我发现之前的某次提交太愚蠢了,现在想要干掉它!

    撤销

    上述场景一,在未进行git push前的所有操作,都是在“本地仓库”中执行的。我们暂且将“本地仓库”的代码还原操作叫做“撤销”!

    情况一:文件被修改了,但未执行git add操作(working tree内撤销)

    $ git checkout fileName
    $ git checkout .
    

    情况二:同时对多个文件执行了git add操作,但本次只想提交其中一部分文件

    $ git add *
    $ git status
    # 取消暂存
    $ git reset HEAD <filename>
    

    情况三:文件执行了git add操作,但想撤销对其的修改(index内回滚)

    # 取消暂存
    $ git reset HEAD fileName
    # 撤销修改
    $ git checkout fileName
    

    情况四:修改的文件已被git commit,但想再次修改不再产生新的Commit

    # 修改最后一次提交 
    $ git add sample.txt
    $ git commit --amend -m"说明"
    

    情况五:已在本地进行了多次git commit操作,现在想撤销到其中某次Commit

    $ git reset [--hard|soft|mixed|merge|keep] [commit|HEAD]
    

    具体参数和使用说明,请查看:Git Pro深入浅出(二)中的重置揭秘部分

    回滚

    上述场景二,已进行git push,即已推送到“远程仓库”中。我们将已被提交到“远程仓库”的代码还原操作叫做“回滚”!注意:对远程仓库做回滚操作是有风险的,需提前做好备份和通知其他团队成员!

    如果你每次更新线上,都会打tag,那恭喜你,你可以很快的处理上述场景二的情况

    $ git checkout <tag>
    

    如果你回到当前HEAD指向

    $ git checkout <branch_name>
    

    情况一:撤销指定文件到指定版本

    # 查看指定文件的历史版本
    $ git log <filename>
    # 回滚到指定commitID
    $ git checkout <commitID> <filename>
    

    情况二:删除最后一次远程提交

    方式一:使用revert

    $ git revert HEAD
    $ git push origin master
    

    方式二:使用reset

    $ git reset --hard HEAD^
    $ git push origin master -f
    

    二者区别:

    • revert 是放弃指定提交的修改,但是会生成一次新的提交,需要填写提交注释,以前的历史记录都在;
    • reset 是指将HEAD指针指到指定提交,历史记录中不会出现放弃的提交记录。

    情况三:回滚某次提交

    # 找到要回滚的commitID
    $ git log
    $ git revert commitID
    

    删除某次提交

    $ git log --oneline -n5
    

    Git撤销&回滚操作-log

    $ git rebase -i "commit id"^
    

    注意: 需要注意最后的*^*号,意思是commit id的前一次提交

    $ git rebase -i "5b3ba7a"^
    

    Git撤销&回滚操作-rebase
    在编辑框中删除相关commit,如pick 5b3ba7a test2,然后保存退出(如果遇到冲突需要先解决冲突)!

    $ git push origin master -f
    

    通过上述操作,如果你想对历史多个commit进行处理或者,可以选择git rebase -i,只需删除对应的记录就好。rebase还可对 commit 消息进行编辑,以及合并多个commit。

    展开全文
  • git 更新代码到本地

    万次阅读 多人点赞 2017-11-28 10:44:13
    git status(查看本地分支文件信息,确保更新时不产生冲突) git checkout – [file name] (若文件有修改,可以还原到最初状态; 若文件需要更新到服务器上,应该先merge到服务器,再更新到本地) git branch(查看...

    正规流程

    1. git status(查看本地分支文件信息,确保更新时不产生冲突)

    2. git checkout – [file name] (若文件有修改,可以还原到最初状态; 若文件需要更新到服务器上,应该先merge到服务器,再更新到本地)

    3. git branch(查看当前分支情况)

    4. git checkout remote branch (若分支为本地分支,则需切换到服务器的远程分支)

    5. git pull

    若命令执行成功,则更新代码成功!

    快速流程

    上面是比较安全的做法,如果你可以确定什么都没有改过只是更新本地代码

    1. git pull (一句命令搞定)

    git branch 看看分支
    git checkout aaa 切换分支aaa
    git branck aaa 创建aaa分支
    git chechout -b aaa 本地创建 aaa分支,同时切换到aaa分支。只有提交的时候才会在服务端上创建一个分支

    展开全文
  • Git 常用命令

    万次阅读 2019-02-27 17:13:26
    先给个图看看git基本工作流程吧。 接下来进入正题说说常用基本命令。文章总共九大类,可ctrl + f全文检索关键字进行查看。 1. 新建代码库 # 在当前目录新建一个git代码库 $ git init # 新建一个目录,将其初始...
  • git命令之git clone用法

    万次阅读 多人点赞 2018-07-31 17:49:55
    2015年02月26日 13:59:11 ...在使用git来进行版本控制时,为了得一个项目的拷贝(copy),我们需要知道这个项目仓库的地址(Git URL). Git能在许多协议下使用,所以Git URL可能以ssh://, http(s)://, ...
  • Git 天天用 但是 Git 原理你了解吗?

    万次阅读 多人点赞 2019-09-20 16:10:05
    Git 原理 做技术一定要知其然知其所以然,意思就是:知道它是这样的,更知道它为什么是这样的。我主要通过4块内容来简单介绍 Git 是原理是什么样的。这4块内容如下: Git 存储目录结构介绍 Git 是如何存储的 Git 的...
  • 一、问题描述 在利用github实现多人合作程序开发的过程中,我们有时会出现错误提交的情况,此时... 使用git的每次提交,Git都会自动把它们串成一条时间线,这条时间线就是一个分支。如果没有新建分支,那么...
  • git remote set-url origin [url] 例如: git remote set-url origin git@gitee.com:xigexige/ztjs.git 2.先删后加 git remote rm origin git remote add origin [url] 3.直接修改config文件 ...
  • git checkout简介

    万次阅读 2016-11-25 15:27:05
    原文: http://web.mit.edu/~thefred/MacData/afs/sipb/project/...git checkout的主要功能就是迁出一个分支的特定版本。默认是迁出分支的HEAD版本 示例: git checkoutmaster //取出master版本的head。 git checkout
  • git官网下载太慢解决方法

    万次阅读 多人点赞 2019-08-16 22:26:57
    官网下载Git时,速度几乎是超不过20KB,解决方法有很多,这里介绍简单粗暴的方法。 这里使用windows系统作为演示,其他系统对号入座即可。 下载 地址:https://github.com/git-for-windows/git/releases/ 一、选择...
  • git丢弃本地修改的所有文件(新增、删除、修改)

    万次阅读 多人点赞 2016-05-03 15:15:34
    本地修改了许多文件,其中有些是新增的,因为开发需要这些都不要了,想要丢弃掉,可以使用如下命令:git checkout . #本地所有修改的。没有的提交的,都返回到原来的状态 git stash #把所有没有提交的修改暂存到...
  • git中文安装教程

    万次阅读 多人点赞 2018-05-06 00:06:36
    Git Setup 2.17.0 Git 中文安装教程 AUTHOR:谢宗南 https://creativecommons.org/licenses/by-nc-nd/4.0/deed.zh 本人 GitHub 原文地址 ...
  • git强制覆盖: git fetch --all git reset --hard origin/master git pullgit强制覆盖本地命令(单条执行): git fetch --all &amp;&amp;git reset --hard origin/master &amp;&amp;git pull...
  • Git 设置用户名和邮箱

    万次阅读 2020-06-21 17:27:55
    git config -l # 查看git全局的设置 git config -l --global 设置 按照上面说的查看方法可以得知,设置用户名和邮箱同样可是全局还有单独项目,区分就是在参数中是否加上--global git config --global user.name '...
  • Git安装配置教程中文-Windows

    万次阅读 2018-10-25 02:05:49
    Git 中文安装教程,本文提供全流程,中文翻译 助力快速完成 Git 的安装 为新手节省宝贵的时间,避免采坑! Chinar 坚持将简单的生活方式,带给世人! Git —— 分布式管理方案,关于它的强大之处,网络上是...
  • Git上checkout指定的文件夹至本地

    万次阅读 2018-08-01 19:43:03
    当项目过大时,从服务器上拉取项目是件很头疼的...git clone -n git@172.0.0.10:test/test_platform.git cd test_platform git config core.sparsecheckout true echo webapp/css &gt;&gt; .git/info/spars...
  • 在 vscode 中使用 Git :拉取、提交、克隆

    万次阅读 多人点赞 2018-11-13 16:53:15
    PS:转载此文后,网友在评论中提到还有其它方法,不过目前个人尚在研究中,有兴趣的朋友们也可自行一探究竟 ... ------------------------------------------------------------------------- ...Git 全局设置:...
  • Gitgit-pull 的用法总结

    万次阅读 2018-08-28 17:25:37
    git pull的作用是从一个仓库或者本地的分支拉取并且整合代码。 git pull [&amp;amp;lt;options&amp;amp;gt;] [&amp;amp;lt;repository&amp;amp;gt; [&amp;amp;lt;refspec&amp;amp;gt;…​]...
  • Git撤销&回滚操作(git reset 和 get revert)

    万次阅读 多人点赞 2018-11-15 22:11:48
    git的工作流 工作区:即自己当前分支所修改的代码,git add xx 之前的!不包括 git add xx 和 git commit xxx 之后的。 暂存区:已经 git add xxx 进去,且未 git commit xxx 的。 本地分支:已经git commit -m ...
  • git rebase简介(基本篇)

    万次阅读 多人点赞 2012-06-14 22:09:19
    git rebase用于把一个分支的修改合并到当前分支。 假设你现在基于远程分支"origin",创建一个叫"mywork"的分支。 $ git checkout -b mywork origin 假设远程分支"origin"已经有了2个提交,如图 现在我们在这...
  • git用法

    万次阅读 2018-10-29 23:56:52
    git checkout -b zhu # 远程拉取文件 git pull 远端:有master和zhu分支 本地:有master和zhu分支 需求:将远端master分支更新到本地zhu分支 操作:git pull origin master:zhu git pull origin zhu 冲突处理: ...
  • git merge最简洁用法

    万次阅读 多人点赞 2019-06-28 17:00:16
    git checkout dev git pull git checkout master git merge dev git push -u origin master 二、当master代码改动了,需要更新开发分支(dev)上的代码 git checkout master git pull git ch...
  • git 拉取远程分支到本地

    万次阅读 多人点赞 2018-03-25 22:43:11
    步骤:1、新建一个空文件,文件名为hhhh2、初始化 git init3、自己要与origin master建立连接(下划线为远程仓库链接)git remote add origin git@github.com:XXXX/nothing2.git远程仓库链接在github这里,如下图...
  • git commit 后的多种撤销操作

    万次阅读 2020-07-28 14:46:30
    原文地址:git使用情景2:commit之后,想撤销commit 写完代码后,我们一般这样 git add . //添加所有文件 git commit -m "本功能全部完成" 执行完commit后,想撤回commit,怎么办? 这样凉拌: git reset --soft ...
  • 转载自:... 推送本地分支local_branch到远程分支 remote_branch并建立关联关系 a.远程已有remote_branch分支并且已经关联本地分支local_branch且本地已经切换到local_branch git...
  • Git可视化教程——Git Gui的使用

    万次阅读 多人点赞 2017-04-28 15:43:04
    Git可视化教程——Git Gui的使用
  • IntelliJ IDEA 如何配置git

    万次阅读 多人点赞 2018-05-23 15:02:15
    IntelliJ IDEA 配置git: 需要的材料: 一、git.exe 二、配置git.exe的环境变量 三、IDEA编辑器 接下来就是配置了: ①你必须去github官网下载一个git.exe,不知道官网的请点击这里,下载完之后安装即可。 ②...
  • git merge 与 git rebase的区别

    万次阅读 多人点赞 2018-01-19 19:05:12
    其实这个问题困扰我有一段时间,相信也有人和我一样有这个困扰,网上已有很多这种解释了,但是要么就是无图,要么就是解释的很乱,没太看懂,经过自己对git的使用,加上向同事请教,算是理解了这个问题,所以写下来...

空空如也

1 2 3 4 5 ... 20
收藏数 432,664
精华内容 173,065
关键字:

git