git 使用和一些错误
一、简单使用
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 使用和一些错误的更多相关文章
- git push origin master、git pull出现如下错误
git push origin master出现如下错误: Counting objects: , done. Writing objects: % (/), bytes, done. Total ( ...
- Git版本控制:Git冲突解决 相关错误总结
http://blog.csdn.net/pipisorry/article/details/46958699 冲突处理 git push冲突处理 git push时出现冲突:! [rejected] ...
- 关于git上的一些错误信息
如果输入$ Git remote add origin git@github.com:djqiang(github帐号名)/gitdemo(项目名).git 提示出错信息:fatal: remote ...
- git remote add origin错误
如果输入$ Git remote add origin git@github.com:djqiang(github帐号名)/gitdemo(项目名).git 提示出错信息:fatal: remote ...
- git提交代码出现错误fatal: Unable to create '项目路径/.git/index.lock': File exists.
git提交代码出现错误fatal: Unable to create '项目路径/.git/index.lock': File exists. 具体出错代码如下: 具体原因不详,在stackoverf ...
- [git 学习篇] git remote add origin错误
http://blog.csdn.net/dengjianqiang2011/article/details/9260435 如果输入$ Git remote add origin git@githu ...
- Git学习之常见错误 git push 失败
Git学习之常见错误 git push 失败 问题描述: git push Counting objects: , done. Delta compression using up to thread ...
- Git学习之常见错误 clone被拒绝
Git学习之常见错误 问题: git clone 时 报错 Permission Denied (权限被拒绝). 解决方法: 需要把本地的公钥上传到服务器. 解决步骤: ①第一步,设置本地的git的用 ...
- git ,报403错误,完美解决方案
首先命令行操作结果如下: root@zhiren-PowerEdge-T110-II:/zrun# git clone https://git.coding.net/xxxxxxxx/xxxx.git ...
- 常见的git命令和git->github错误
相关命令 git remote git remote add origin xxx (xxx为仓库链接) 给这个链接取一个名字,为origin git pull git pull <远程主机名& ...
随机推荐
- 将js进行到底:node学习10
node.js数据库篇--MySQL NoSQL大行其道的如今,MySQL这样的关系型数据库依然有着不可撼动的位置,对于中型,大型面向对象的项目,关系型数据库依然是首选,真正的项目,应当是将数据库的任 ...
- 基于USB接口芯片CH372的人机接口设备设计与实现(转)
摘 要: 基于一种新型USB 总线接口芯片CH372,设计出一种人机接口设备-USB 鼠标.阐述了CH372 的工作原理和特点,给出了系统的硬件电路图:在软件设计中,分析了HID 类设备描述符枚举过程 ...
- 你的胃能Hold住未来的食物吗?
如果你是一名美食客,那么一定会发现现在越来越多的食物已经发生了翻天覆地的变化,很多食物正在以我们未知的形式出现在生活中,其中最大的莫过于分子美食.你想过吗?当食物发生改变的时候,你的胃是否能够Ho ...
- objectarx 得到有宽度的多段的轮廓
使用到的命令是:_.wmfout和_.import以及PEdit步骤:1.先通过_.wmfout和_.import得到轮廓线,得到的轮廓线是一个块.方法如下: //ssname:选择的有宽度的多段线 ...
- JS逆向某网站登录密码分析
声明: 本文仅供研究学习使用,请勿用于非法用途! 目标网站 aHR0cHM6Ly9hdXRoLmFsaXBheS5jb20vbG9naW4vaW5kZXguaHRt 今日目标网站是某知名支付网站,感觉 ...
- JZOJ 1776. 经济编码 (Standard IO)
1776. 经济编码 (Standard IO) Time Limits: 1000 ms Memory Limits: 128000 KB Description 为降低资料储存的空间或增加资料传送 ...
- docker部署tensorflow serving以及模型替换
Using TensorFlow Serving with Docker 1.Ubuntu16.04下安装docker ce 1-1:卸载旧版本的docker sudo apt-get remove ...
- python学习(二)之turtle库绘图
今天是三月七号,也就是女生节,或者女神节.不知道你是不是有自己喜欢的女孩子,在这里你可以用turtle库绘制一朵玫瑰花,送给你喜欢的姑娘.(拉到最后有惊喜哦)但在画这朵玫瑰花之前,先来一个基础的图形, ...
- jquery 获取css3 transform 值
最近写了个旋转,有要求获取transform值.当看到console.log($("#id").css("transform"))的值的时候,我的内心是崩溃的 ...
- 026.掌握Service-外部访问
一 集群外部访问 由于Pod和Service都是Kubernetes集群范围内的虚拟概念,所以集群外的客户端默认情况,无法通过Pod的IP地址或者Service的虚拟IP地址:虚拟端口号进行访问.通常 ...