git各种命令介绍以及碰到的各种坑

一.各种命令介绍: 

git pull:从其他的版本库(既可以是远程的也可以是本地的)将代码更新到本地,例如:‘git pull origin master‘就是将origin这个版本库的代码更新到本地的master主枝,该功能类似于SVN的update

git add:是将当前更改或者新增的文件加入到Git的索引中,加入到Git的索引中就表示记入了版本历史中,这也是提交之前所需要执行的一步,例如‘git add app/model/user.rb‘就会增加app/model/user.rb文件到Git的索引中

git rm:从当前的工作空间中和索引中删除文件,例如‘git rm app/model/user.rb‘

git commit:提交当前工作空间的修改内容,类似于SVN的commit命令,例如‘git commit -m "story #3, add user model"‘,提交的时候必须用-m来输入一条提交信息

git push:将本地commit的代码更新到远程版本库中,例如‘git push origin‘就会将本地的代码更新到名为orgin的远程版本库中

git log:查看历史日志

git revert:还原一个版本的修改,必须提供一个具体的Git版本号,例如‘git revert bbaf6fb5060b4875b18ff9ff637ce118256d6f20‘,Git的版本号都是生成的一个哈希值、

二.使用步骤及流程

创建新仓库
git init
检出仓库
件来人肉合并这些 冲突(conflicts) 了。改完之后,你需要执行如下命令以将它们标记为合并成功:
git add <filename>
在合并改动之前,也可以使用如下命令查看:
git diff <source_branch> <target_branch>
串创建一个本地仓库的克隆版本
git clone /path/to/repositoty
如果是远程服务器上的仓库
git clone [email protected]:/path/to/repository
件。已添加到缓存区的改动,以及新件,都不受影响。

假如你想要丢弃你所有的本地改动与提交,可以到服务器上获取最新的版本并将你本地主分支指向到它:
git fetch origin
git reset --hard origin/master
你的本地仓库由 git 维护的三棵“树”组成。第一个是你的 工作目录,它持有实际件;第二个是 缓存区(Index),它像个缓存区域,临时保存你的改动;最后是 HEAD,指向你最近一次提交后的结果。
添加与提交
你可以计划改动(把它们添加到缓存区),使用如下命令:
git add <filename>
git add *
这是 git 基本工作流程的第一步;使用如下命令以实际提交改动:
git commit -m "代码提交信息"
现在,你的改动已经提交到了 HEAD,但是还没到你的远端仓库。推送改动
你的改动现在已经在本地仓库的 HEAD 中了。执行如下命令以将这些改动提交到远端仓库:
git push origin master
可以把 master 换成你想要推送的任何分支。

如果你还没有克隆现有仓库,并欲将你的仓库连接到某个远程服务器,你可以使用如下命令添加:
git remote add origin <server>
如此你就能够将你的改动推送到所添加的服务器上去
分支
分支是用来将特性开发绝缘开来的。在你创建仓库的时候,master 是“默认的”。在其他分支上进行开发,完成后再将它们合并到主分支上
创建一个叫做“feature_x”的分支,并切换过去:
git checkout -b feature_x
切换回主分支:
git checkout master
再把新建的分支删掉:
git branch -d feature_x
除非你将分支推送到远端仓库,不然该分支就是 不为他人所见的:
git push origin <branch>
更新与合并
要更新你的本地仓库至最新改动,执行:
git pull
以在你的工作目录中 获取(fetch) 并 合并(merge) 远端的改动。
要合并其他分支到你的当前分支(例如 master),执行:
git merge <branch>
两种情况下,git 都会尝试去自动合并改动。不幸的是,自动合并并非次次都能成功,并可能导致 冲突(conflicts)。 这时候就需要你修改这些文件来人肉合并这些 冲突(conflicts) 了。改完之后,你需要执行如下命令以将它们标记为合并成功:
git add <filename>
在合并改动之前,也可以使用如下命令查看:
git diff <source_branch> <target_branch>
替换本地改动
假如你做错事(自然,这是不可能的),你可以使用如下命令替换掉本地改动:
git checkout -- <filename>
此命令会使用 HEAD 中的最新内容替换掉你的工作目录中的文件。已添加到缓存区的改动,以及新文件,都不受影响。

假如你想要丢弃你所有的本地改动与提交,可以到服务器上获取最新的版本并将你本地主分支指向到它:
git fetch origin
git reset --hard origin/master

三.错误汇总

1.windows使用git时出现:warning: LF will be replaced by CRLF

windows中的换行符为 CRLF, 而在linux下的换行符为LF,所以在执行add . 时出现提示,解决办法:

  1. $ rm -rf .git  // 删除.git
  2. $ git config --global core.autocrlf false  //禁用自动转换

然后重新执行:

  1. $ git init
  2. $ git add .

2.git push origin master出错:error: failed to push some refs to

很明显是:

本地没有update到最新版本的项目(git上有README.md文件没下载下来)

本地直接push所以会出错。

【解决过程】

1.看到提示里面,感觉是本地的代码不是最新的。

所以觉得应该是类似于svn中的,先update一下,再去commit,估计就可以了。

所以先去pull试试:

git pull  --rebase origin master

解决!

3.Git: cannot checkout branch - error: pathspec ‘…‘ did not match any file(s) known to git

解决方案:传送门

4.fatal: remote origin already exists.

解决办法如下:

1、先输入$ git remote rm origin

2、再输入$ git remote add origin [email protected]:djqiang/gitdemo.git 就不会报错了!

3、如果输入$ git remote rm origin 还是报错的话,error: Could not remove config section ‘remote.origin‘. 我们需要修改gitconfig文件的内容

4、找到你的github的安装路径,我的是C:\Users\ASUS\AppData\Local\GitHub\PortableGit_ca477551eeb4aea0e4ae9fcd3358bd96720bb5c8\etc

5、找到一个名为gitconfig的文件,打开它把里面的[remote "origin"]那一行删掉就好了!

如果输入$ ssh -T [email protected]
    出现错误提示:Permission denied (publickey).因为新生成的key不能加入ssh就会导致连接不上github。

解决办法如下:

1、先输入$ ssh-agent,再输入$ ssh-add ~/.ssh/id_key,这样就可以了。

2、如果还是不行的话,输入ssh-add ~/.ssh/id_key 命令后出现报错Could not open a connection to your authentication agent.解决方法是key用Git Gui的ssh工具生成,这样生成的时候key就直接保存在ssh中了,不需要再ssh-add命令加入了,其它的user,token等配置都用命令行来做。

3、最好检查一下在你复制id_rsa.pub文件的内容时有没有产生多余的空格或空行,有些编辑器会帮你添加这些的。

如果输入$ git push origin master

提示出错信息:error:failed to push som refs to .......

解决办法如下:

1、先输入$ git pull origin master //先把远程服务器github上面的文件拉下来

2、再输入$ git push origin master

3、如果出现报错 fatal: Couldn‘t find remote ref master或者fatal: ‘origin‘ does not appear to be a git repository以及fatal: Could not read from remote repository.

4、则需要重新输入$ git remote add origin[email protected]:djqiang/gitdemo.git

使用git在本地创建一个项目的过程

$ makdir ~/hello-world    //创建一个项目hello-world
    $ cd ~/hello-world       //打开这个项目
    $ git init             //初始化 
    $ touch README
    $ git add README        //更新README文件
    $ git commit -m ‘first commit‘     //提交更新,并注释信息“first commit”
    $ git remote add origin [email protected]:defnngj/hello-world.git     //连接远程github项目  
    $ git push -u origin master     //将本地项目更新到github项目上去

gitconfig配置文件

Git有一个工具被称为git config,它允许你获得和设置配置变量;这些变量可以控制Git的外观和操作的各个方面。这些变量可以被存储在三个不同的位置: 
         1./etc/gitconfig 文件:包含了适用于系统所有用户和所有库的值。如果你传递参数选项’--system’ 给 git config,它将明确的读和写这个文件。 
         2.~/.gitconfig 文件 :具体到你的用户。你可以通过传递--global 选项使Git 读或写这个特定的文件。
         3.位于git目录的config文件 (也就是 .git/config) :无论你当前在用的库是什么,特定指向该单一的库。每个级别重写前一个级别的值。因此,在.git/config中的值覆盖了在/etc/gitconfig中的同一个值。
        在Windows系统中,Git在$HOME目录中查找.gitconfig文件(对大多数人来说,位于C:\Documents and Settings\$USER下)。它也会查找/etc/gitconfig,尽管它是相对于Msys 根目录的。这可能是你在Windows中运行安装程序时决定安装Git的任何地方。

配置相关信息:

2.1 当你安装Git后首先要做的事情是设置你的用户名称和e-mail地址。这是非常重要的,因为每次Git提交都会使用该信息。它被永远的嵌入到了你的提交中:

  $ git config --global user.name "John Doe"

  $ git config --global user.email [email protected]

2.2    你的编辑器(Your Editor)

  现在,你的标识已经设置,你可以配置你的缺省文本编辑器,Git在需要你输入一些消息时会使用该文本编辑器。缺省情况下,Git使用你的系统的缺省编辑器,这通常可能是vi 或者 vim。如果你想使用一个不同的文本编辑器,例如Emacs,你可以做如下操作:

  $ git config --global core.editor emacs

2.3 检查你的设置(Checking Your Settings)

  如果你想检查你的设置,你可以使用 git config --list 命令来列出Git可以在该处找到的所有的设置:

  $ git config --list

你也可以查看Git认为的一个特定的关键字目前的值,使用如下命令 git config {key}:

  $ git config user.name

2.4 获取帮助(Getting help)

  如果当你在使用Git时需要帮助,有三种方法可以获得任何git命令的手册页(manpage)帮助信息:

  $ git help <verb>

  $ git <verb> --help

  $ man git-<verb>

  例如,你可以运行如下命令获取对config命令的手册页帮助:

  $ git help config

时间: 2024-10-10 02:57:47

git各种命令介绍以及碰到的各种坑的相关文章

Git常用命令介绍

Git分布式版本控制系统,非常流弊的一个版本管理系统,此博文介绍下git常用的命令,适用于不会Git版本控制的菜鸟,对于维护Git服务器的大牛来说,跪求指教,其实我也是菜鸟. Git是被压迫出来的产物,因为BitMover公司收回了版本控制系统BitKeeper对linux社区免费使用的权限,而linux的开发迫切需要一个好的分布式版本控制系统,我们心高气傲的linux之父linus不愿意向BitMover低头付费,一生气就花了不到一个月的时间用自己的C写出了现在最流行的分布式版本控制系统git

Git基础(常用命令)介绍

版本控制是一种记录若干文件内容变化,以便将来查阅特定版本修订情况的系统. 关于版本控制分为三种:本地版本控制系统,如rcs:集中化的版本控制系统,如CVS.SVN:分布式版本控制系统,如Git. Git基础要点 Git和其它版本控制系统的主要差别在于:Git只关心文件数据的整体是否发生变化,而大多数其它系统则只关心文件内容的具体差异. 对于任何一个文件,在Git内都只有三种状态:已提交(committed).已修改(modified)和已暂存(staged).已提交表示该文件已经被安全地保存在本

git原理浅析及命令介绍

状态描述 请记住,工作目录下面的所有文件都不外乎这两种状态:已跟踪或未跟踪.已跟踪的文件是指本来就被纳入版本控制管理的文件,在上次快照中有它们的记录,工作一段时间后,它们的状态可能是未更新,已修改或者已放入暂存区.而所有其他文件都属于未跟踪文件.它们既没有上次更新时的快照,也不在当前的暂存区域.初次克隆某个仓库时,工作目录中的所有文件都属于已跟踪文件,且状态为未修改. 在编辑过某些文件之后,Git 将这些文件标为已修改.我们逐步把这些修改过的文件放到暂存区域,直到最后一次性提交所有这些暂存起来的

[转] git config命令使用第一篇——介绍,基本操作,增删改查

平时我们在使用git的时候,很少去关注其配置是如何,而在实际开发中,对git config这个命令的使用也并不是很多,但是配置对一个程序和项目来说都是很重要的,我们今天来看看git的配置以及git config的初步应用.     1. git config简介 我们知道config是配置的意思,那么git config命令就是对git进行一些配置.而配置一般都是写在配置文件里面,那么git的配置文件在哪里呢?互动一下,先问下大家. 你们所知的git配置文件是放在哪里的?git有几个配置文件呢?

git常用命令常用场景

在使用git之前,一直用的是svn版本管理:与svn最大不同的是,git有两个仓库,一个是本地仓库,一个是服务器上共享的仓库:本地仓库是每个开发者自己独有的,即使commit提交也只是提交到本地仓库:这只是git流行起来的一个优势之一,另外linux作者开发的这套版本管理工具,很接地气,也是流行起来的一大亮点.扯了这么多没用的,言归正卷,那么在日常开发工作中,哪些git命令是我们常用到的呢?下面就说说几个常用命令的常用场景,至于这些命令详细使用就不在本文讨论之内. 1.git命令别名 使用过gi

Git常用命令总结

文章作者:Tyan 博客:noahsnail.com  |  CSDN  |  简书 1. Git仓库的创建 在当前目录新建一个Git仓库 # 命令形式:git init $ cd TestGit $ git init Initialized empty Git repository in /Users/***/TeskGit/.git/ 在指定目录下新建一个Git仓库 # 命令形式:git init [Directory Name] $ git init TestGit Initialized

【git】git常用命令简介

使用Git也好长时间了,但一直没系统的学习过,现在总结以下工作中用到的,记录以下,以后忘记了可以来看看. 因为操作系统是Windows,所以将简单介绍一下通过git bash命令行的使用: 本文将不介绍git的安装和配置,主要说一下git几个常用命令的使用: (1)git help 查看常用命令 (2)git add  一方面可以将不在版本控制中的文件添加到git管理中,另一方面也用于添加已在版本控制中但是刚修改过的文件; 在这两种情况下, Git都会获得当前文件的快照并且把内容暂存(stage

git 常用命令及解析 由浅入深

笔者用的是windows系统,不过并没有什么影响. Git  分布式版本控制系统. 为了让初学git的人明白git是干什么的,有什么意义 笔者觉得先来介绍git作为版本控制器是怎么运作的会让大家对后边的内容有更好的掌握. Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD.工作区就是我们的代码存放的位置. 我们把文件往Git版本库里添加的时候,是分两步执行的: 第一步

Git初始化之思考git config命令的各参数有何区别

在之前出现的git config 命令中,有的使用 --global 参数,有的使用了 --system 参数,这两个参数有什么区别吗?执行下面的一系列命令后,你就会明白使用不同参数的 git config 命令实际操作的文件了. 执行下面的命令,将打开 /path/to/my/workspace/demo/.git/config 文件进行编辑. $ cd /path/to/my/workspace/demo/ $ git config -e 执行下面的命令,将打开 /home/fuhd/.gi