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教程
转载于:https://www.cnblogs.com/BackingStar/p/11111197.html
git 使用和一些错误相关推荐
- git ,报403错误,完美解决方案
git ,报403错误,完美解决方案 参考文章: (1)git ,报403错误,完美解决方案 (2)https://www.cnblogs.com/duanqiao123/p/7000813.html ...
- git 中遇到的错误及解决方法
1.git pull遇到错误:error: Your local changes to the following files would be overwritten by merge: 方法1 ...
- git pull时提示错误:warning: ignoring broken ref refs/remotes/origin/HEAD的解决办法
git pull时提示错误:warning: ignoring broken ref refs/remotes/origin/HEAD的解决办法 我用的是IDEA开发的GIT项目,首先找到你项目的根目 ...
- git remote add origin错误
如果输入$ Git remote add origin git@github.com:djqiang(github帐号名)/gitdemo(项目名).git 提示出错信息:fatal: remote ...
- Git clone密码输入错误如何修改
一步教你解决git clone密码错误需要修改的问题 当git clone时候,第一次会让你输入用户名和密码,如果密码输错的话,之后执行git clone则会直接报错. 报错提示为:fatal: Au ...
- git push时出现错误refusing to update checked out branch: refs/heads/master
错误描述 使用tortoisegit push的时候如下错误 Writing objects: 100% (3/3), 258 bytes | 0 bytes/s, done. Total 3 (de ...
- centos下git clone报401错误解决办法
1.我们在服务器上直接git clone项目的版本库的时候报401错误! 错误如下:error:The requested URL returned error: 401 Unauthorized w ...
- 解决git push远程分支错误
分布式版本控制系统在日常开发中使用越来越频繁,谁没经历过手一抖,不小心把错误的内容git push到远程仓库? 前几天我就遇到了,当时对git也不熟,于是各种try--终于,现在搞明白了 环境: 远程 ...
- git repo仓库地址错误 /info/refs
git push突然发现了一下错误 fatal: [repo-url]/info/refs not valid: is this a git repository? 解决方案 gbashit remo ...
- git push时候出现错误:unable to access‘xxx‘:the requested url returned error
我们一般在把自己写好的代码git的时候,首先把代码commii到自己的本地仓库中,然后再上传到云端的仓库,即push.在push的时候如果出现这种错误,首先先考虑是否自己克隆项目的时候出错,即把别人的 ...
最新文章
- 站在架构师的角度,深入理解 MySQL!
- 关于数据库group by需要注意
- 分布式加载数据训练神经网络
- java jetty eclipse_用Eclipse+Maven+Jetty构建Java Web开发环境(详细笔记)
- Linux内核设计基础(一)之中断处理
- 为什么世界需要 OpenStreetMap 开源道路地图
- ruby on rails Mac 安装
- 阿里云服务器怎么安装docker
- spring mvc拆分_Spring集成–强大的拆分器聚合器
- concat合并的数组会有顺序么_超全的JS常用数组方法整理
- 编译程序 解释程序
- 绝地求生更新完后显示服务器忙,绝地求生2月1日更新好了吗?更新后提示服务器繁忙怎么办?...
- LINUX tar解压到指定目录
- java redis令牌桶_redis实现的简单令牌桶
- 微信 多选 照片,进行上传
- 传智:自己简单实现一个struts2框架的demo
- 新昌中学2021高考成绩查询,新昌中学教育集团向2020年参加高考被第一批录取的553名学子表示热烈祝贺...
- 修改注册表禁用谷歌浏览器提示保存密码
- Hi3516开发笔记(四):Hi3516虚拟机编译uboot、kernel、roofts和userdata以及分区表
- Lintcode 1667.石头
热门文章
- ipvsadm的几个参数输出的说明
- SQL Server 对比数据库差异
- 背景图像位置css_CSS背景图像大小教程–如何对整页背景图像进行编码
- javascript优化_如何通过使用服务人员来优化JavaScript应用
- php hasattribute,PHP DOMElement hasAttribute()用法及代码示例
- c语言多线程mysql_多线程读写mysql数据库
- Java培训都学什么
- Odoo 学习 【二】Environment 概览
- javabean属性的类型选择包装类还是基本数据类型
- 使用 dockerfile 创建镜像