一、简单使用

  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. 吴裕雄--天生自然 PYTHON语言数据分析:ESA的火星快车操作数据集分析

    import os import numpy as np import pandas as pd from datetime import datetime import matplotlib imp ...

  2. 将js进行到底:node学习10

    node.js数据库篇--MySQL NoSQL大行其道的如今,MySQL这样的关系型数据库依然有着不可撼动的位置,对于中型,大型面向对象的项目,关系型数据库依然是首选,真正的项目,应当是将数据库的任 ...

  3. python os.path 模块常用方法

    代码: import os apath = os.path.abspath(__file__) # 绝对路径 dirname = os.path.dirname(apath) basename = o ...

  4. ES查询实例

    注:转载自https://www.cnblogs.com/yjf512/p/4897294.html 作者:叶剑锋 elasticsearch 查询(match和term) es中的查询请求有两种方式 ...

  5. 芮勇博士荣获2016年IEEE 计算机学会技术成就奖

    微软亚洲研究院常务副院长 芮勇 日前,电气电子工程师学会(the Institute of Electrical and Electronics Engineers, IEEE)计算机学会(Comp ...

  6. 一条SQL在内存结构与后台进程工作机制

    oracle服务器由数据库以及实例组成,数据库由数据文件,控制文件等物理文件组成,实例是由内存结构+后台进程组成,实例又可以看做连接数据库的方式,在我看来就好比一家公司,实例就是一个决策的办公室,大大 ...

  7. 一步一步理解AdaBoosting(Adaptive Boosting)算法

    最近学习<西瓜书>的集成学习之Boosting算法,看了一个很好的例子(https://zhuanlan.zhihu.com/p/27126737),为了方便以后理解,现在更详细描述一下步 ...

  8. Arthas 实战,助你解决同名类依赖冲突问题

    上篇文章中,小黑哥分析 Maven 依赖冲突分为两类: 项目同一依赖应用,存在多版本,每个版本同一个类,可能存在差异. 项目不同依赖应用,存在包名,类名完全一样的类. 第二种情况,往往是这个场景,本地 ...

  9. js实现box(2)(3)这种调用方式的方法

    box(2)(3)函数的调用方法有两种: 第一种: var box = function(num1){ return function(num2){ return num1+num2; }; }; a ...

  10. web页面上展示图片时,图片不显示,报错:ERR_CONTENT_LENGTH_MISMATCH

      问题描述 前端页面加载css,和js文件的时候,经常出现ERR_CONTENT_LENGTH_MISMATCH的报错情况.   查找问题 在单独打开hearder中css,js的网络地址是能打开的 ...