zoukankan      html  css  js  c++  java
  • 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教程

  • 相关阅读:
    Linux:打印(输出)所有的列(awk, $0)
    Linux:批量修改分隔符(awk、BEGIN、FS、OFS、print、tr命令)
    vcf格式文件转化为Excel(csv)格式文件(R语言的write.csv,write.table功能,Excel表的文件导入功能)
    Linux追加文件内容并在内容前加上该文件名(awk, FILENAME功能妙用)
    斯坦福大学公开课机器学习:监督学习在行人检测的应用(supervised learning for pedestrian detection)
    斯坦福大学公开课机器学习:梯度下降运算的学习率a(gradient descent in practice 2:learning rate alpha)
    斯坦福大学公开课机器学习:梯度下降运算的特征缩放(gradient descent in practice 1:feature scaling)
    解决invalid record found in VCF4 file (at least 8 tab-delimited fields expected)问题,批量修改空格改为制表格格式
    vcf文件(call variants得来的)怎么看变异是纯合还是杂合的
    剑指offer四十八之不用加减乘除做加法
  • 原文地址:https://www.cnblogs.com/BackingStar/p/11111197.html
Copyright © 2011-2022 走看看