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 [email protected]: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 [email protected]: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教程

猜你喜欢

转载自www.cnblogs.com/BackingStar/p/11111197.html