一、简单使用

  Git是目前世界上最先进的分布式版本控制系统,用于自动记录每次文件的改动,但是和所有版本控制系统一样,只能跟踪文本文件的改动,比如TXT文件,网页,所有的程序代码等,而图片、视频这些二进制文件,只能记录有改动,但是不知道改了什么。

  与集中式版本控制系统最大的区别:集中式版本控制系统必须联网才能工作,速度也比较慢;而Git 有自己的本地仓库,只需要在联网的时候同步一下就好,同时也比较安全,比如当集中式版本控制系统的中央服务器要是出了问题,那就没法干活了。

1、安装git

CentOS7  :sudo yum install git
Ubuntu Linux  :sudo apt-get install git

windows: 
Git官网下载安装程序,然后按默认选项安装即可。(下载速度巨慢...)给个安装包,版本为:Git-2.19.0-64-bit.exe,可以先用着:传送门

安装完成后,在开始菜单里找到“Git”->“Git Bash”:

$ git config --global user.name "github_name"
$ git config --global user.email "email_name"

2、创建版本库

选择一个合适的地方,创建一个目录,然后进入这个目录,把这个目录变成Git可以管理的仓库

$ git init

可以发现当前目录下多了一个.git的目录,这个目录是Git来跟踪管理版本库的

然后把文件添加到仓库:

$ git add filename

把文件提交到仓库

$ git commit -m "说明" 

  -m 后面输入的是本次提交的说明,方便从历史记录里找到改动记录。

3、添加远程库

3.1 创建SSH Key:

$ cd ~/.ssh
$ ls

看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,创建SSH Key:

$ ssh-keygen -t rsa -C "email_name"

登陆GitHub,打开“Account settings”,“SSH Keys”页面,然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴 id_rsa.pub文件的内容,点“Add Key”。GitHub允许添加多个Key,方便从不同电脑推送。

3.2 本地推送到远程仓库

在本地仓库(就是创建的那个目录)下运行命令:

$ git remote add origin git@github.com:githubname/filename.git  //链接远程仓库,创建主分支
$ git push -u origin master //把本地仓库的文件推送到远程仓库

此后,每次本地提交后,只要有必要,就可以使用命令 git push origin master 推送最新修改。

至此,从本地仓库推送到远程仓库已经OK。

二、常用命令

  下面介绍一些常用的命令:

$ git status 命令看看结果
$ git diff readme.txt 看具体修改了什么内容
$ git log 命令显示从最近到最远的提交日志
$ git reflog 记录每一次命令

版本回退

$ git reset --hard HEAD^  回到上一版本
$ git reset --hard commit_id //commit_id为版本号,使用$ git log命令 可以看见
$ git checkout -- filename 丢弃工作区的修改
$ git reset HEAD filename 丢弃暂存区的修改

删除文件

$ git rm filename
$ git commit -m "remove filename"
$ git checkout -- filename 误删后,对于工作区是修改还是删除,都可以“一键还原”

克隆远程仓库

$ git clone git@github.com:githubname/filename.git

三、出现的问题:

1、Git: bash: cd: too many arguments

这个原因是因为路径名或者变量中间有空格,这个时候需要用双引号括起来

2、

  在推送至远程仓库前加上:$ git pull origin master

$ git pull origin master // 把本地仓库的变化连接到远程仓库主分支

$ git push -u origin master //把本地仓库的文件推送到远程仓库

3、

  是因为远程repository和我本地的repository冲突导致的,在github的版本库页面点击了创建README.md文件的按钮创建了说明文档,但是却没有pull到本地。这样就产生了版本冲突的问题。

解决方法:

3.1.使用强制push的方法:

$ git push -u origin master -f 
这样会使远程修改丢失,一般是不可取的,尤其是多人协作开发的时候。

3.2.push前先将远程repository修改pull下来

$ git pull origin master
$ git push -u origin master

3.3.若不想merge远程和本地修改,可以先创建新的分支:

$ git branch [name]
然后push
$ git push -u origin [name]

参考地址:https://www.cnblogs.com/code-changeworld/p/4779145.html

关于更多git 的使用可以参考:廖雪峰老师的Git教程

git 使用和一些错误的更多相关文章

  1. git push origin master、git pull出现如下错误

    git push origin master出现如下错误: Counting objects: , done. Writing objects: % (/), bytes, done. Total ( ...

  2. Git版本控制:Git冲突解决 相关错误总结

    http://blog.csdn.net/pipisorry/article/details/46958699 冲突处理 git push冲突处理 git push时出现冲突:! [rejected] ...

  3. 关于git上的一些错误信息

    如果输入$ Git remote add origin git@github.com:djqiang(github帐号名)/gitdemo(项目名).git 提示出错信息:fatal: remote ...

  4. git remote add origin错误

    如果输入$ Git remote add origin git@github.com:djqiang(github帐号名)/gitdemo(项目名).git 提示出错信息:fatal: remote ...

  5. git提交代码出现错误fatal: Unable to create '项目路径/.git/index.lock': File exists.

    git提交代码出现错误fatal: Unable to create '项目路径/.git/index.lock': File exists. 具体出错代码如下: 具体原因不详,在stackoverf ...

  6. [git 学习篇] git remote add origin错误

    http://blog.csdn.net/dengjianqiang2011/article/details/9260435 如果输入$ Git remote add origin git@githu ...

  7. Git学习之常见错误 git push 失败

    Git学习之常见错误 git push 失败 问题描述: git push Counting objects: , done. Delta compression using up to thread ...

  8. Git学习之常见错误 clone被拒绝

    Git学习之常见错误 问题: git clone 时 报错 Permission Denied (权限被拒绝). 解决方法: 需要把本地的公钥上传到服务器. 解决步骤: ①第一步,设置本地的git的用 ...

  9. git ,报403错误,完美解决方案

    首先命令行操作结果如下: root@zhiren-PowerEdge-T110-II:/zrun# git clone https://git.coding.net/xxxxxxxx/xxxx.git ...

  10. 常见的git命令和git->github错误

    相关命令 git remote git remote add origin xxx (xxx为仓库链接) 给这个链接取一个名字,为origin git pull git pull <远程主机名& ...

随机推荐

  1. 大忙人的jdk8,比出生晚了好几个激情的夏天

    写给大忙人的jdk8到手了,第一件事情就蒙蔽了,mac装的jdk7,切换jdk的功能要整出来才行,下好jdk8up101安装,假装几行代码搞定目标在命令行下,可以通过命令'jdk6', 'jdk7', ...

  2. HEXO+Git+Github+域名搭建个人博客

    搭建个人博客可以分为以下五个部分 一.搭建本地环境(个人为Win10) 1.安装Git,下载地址:点击 下载后,按提示进行安装即可,作用是:把本地的内容提交到github上去 注意:官网下载速度不是很 ...

  3. 使用Handler的步骤

    使用Handler的大致流程: 1.首先创建一个Handler对象,可以直接使用Handler无参构造函数创建Handler对象,也可以继承Hander类,重写HandleMessage方法来创建Ha ...

  4. CSS中怎么设置元素水平垂直居中?

    记录怎么使用text-align与vertical-align属性设置元素在容器中垂直居中对齐.text-align与vertical-align虽然都是设置元素内部对齐方式的,但两者的用法还是有略微 ...

  5. Flutter Widgets 之 RichText

    注意:无特殊说明,Flutter版本及Dart版本如下: Flutter版本: 1.12.13+hotfix.5 Dart版本: 2.7.0 基础用法 应用程序离不开文字的展示,因此文字的排版非常重要 ...

  6. AI:拿来主义——预训练网络(一)

    我们已经训练过几个神经网络了,识别手写数字,房价预测或者是区分猫和狗,那随之而来就有一个问题,这些训练出的网络怎么用,每个问题我都需要重新去训练网络吗?因为程序员都不太喜欢做重复的事情,因此答案肯定是 ...

  7. 设计模式-09装饰模式(Decorator Pattern)

    1.模式动机 一般有两种方式可以实现给一个类或对象增加行为: 继承机制:使用继承机制是给现有类添加功能的一种有效途径,通过继承一个现有类可以使得子类在拥有自身方法的同时还拥有父类的方法.但是这种方法是 ...

  8. 小白学 Python 数据分析(10):Pandas (九)数据运算

    人生苦短,我用 Python 前文传送门: 小白学 Python 数据分析(1):数据分析基础 小白学 Python 数据分析(2):Pandas (一)概述 小白学 Python 数据分析(3):P ...

  9. 50-Python2和3字符编码的区别

    目录 Python2和3字符编码的区别 python2 python3 Python2和3字符编码的区别 区别点 python2 python3 print 是一个语法结构 是一个函数,print(' ...

  10. PHP压缩文件夹 php

    $path = PUBLIC_DIR.'/images/'; //待压缩文件夹父目录 $zipPath = PUBLIC_DIR.'/images_zip/'; //压缩文件保存目录 !is_dir( ...