1. 分布式版本控制系统Git取代了SVN集中式版本控制系统
所有的版本控制系统,其实只能跟踪文本文件的改动,比如TXT文件,网页,所有的程序代码等等,Git也不例外。
git常用命令
- mkdir xx
- cd xx
- git init //空仓,把这个目录变为git可以管理的仓库
- pwd //查看当前路径
- ls -ah
- touch readme.txt //通过touch命令创建文件
- git rm ** //删除文件
git将本地修改或者新增文件提交到远端git仓库
- git add readme.txt //把文件添加到暂存区
- git commit -m "说明" //把暂存区的内容提交到当前分支
- git push //一般工作时候,在push之前会先pull一下
查看
- git status //一般在add和commit命令之间使用一下,用于查看仓库状态
- git diff xx //查看本地文件和仓库文件不同
- git log //显示提交日志
- git reflog //记录你的每一次命令
- git cat-xx //
版本回退
首先,Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,上一个版本就是HEAD,上上一个版本就是HEAD^,当然往上100个版本写成HEAD~100。
- git reset --hard HEAD^ //表示回退到上一个版本
- git reset --hard commit-id //表示回到某个版本
工作区, git版本库, 暂存区(stage), 分支(master)
工作区有一个隐藏的目录.git,这个不属于工作区,它只是一个版本库,里面存放了很多东西,其中最重要的就是stage(暂存区)
切换与创建分支
- git branch dev //创建一个dev分支
- git checkout dev //切换到dev分支
- git checkout -b dev //创建并切换到dev分支,这一步可以代替上面两步
- git branch //查看分支,还有git branch -a ; git branch -r
远程仓库
前言:Git是分布式版本控制系统,同一个Git仓库,可以分布到不同的机器上。
最早,肯定只有一台机器有一个原始版本库,此后,别的机器可以“克隆”这个原始版本库,而且每台机器的版本库其实都是一样的,并没有主次之分。
本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,下面介绍如何生成一个本地ssh密钥,并添加到自己的github账户
- 添加ssh key
$ ssh-keygen -t rsa -C "youremail@example.com" %此命令用于生成一个密钥,将生成的id_rsa.pub 文件中的内容复制到自己的github账户
- 接下来演示如何将一个本地项目传到git上
第一,在github服务器上new repository,创建一个git远程仓库
第二,本地刚好有一个想要传到git上的项目
第三,直接cd到该项目的根目录,按照下面代码依次执行便可
git init
git remote add origin 你的远端仓库地址
git add . //添加当前目录下的所有文件
git commit -m"程序源代码"
git push -u origin master //关联后,使用该命令将所有的内容推送到远端
- 现在,我们从零开发,那么最好的方式是先创建远程库,然后,从远程库克隆。
git clone 项目地址 //要克隆一个仓库,首先必须知道仓库的地址,然后使用git clone命令克隆。
工作后遇见的问题:
- git pull 是在git add之后好呢还是在git commit 之后好呢?
- 有三个commit是在release分支提交的,现在要切换到dev分支继续开发,所以要把这三个提交merge到dev:
切换到dev分支用 git cherry-pick 版本号 然后git push 这样就可以捡着合并其他分支的代码 了
- 有三个commit是在release分支提交的,现在要切换到dev分支继续开发,所以要把这三个提交merge到dev:
- merge dev 分支的代码到release
git checkout release
git pull
git merge origin/dev
git commit -m''
git push
- 如何暂存正在编写的代码,去pull远程代码
git stash
git pull
git stash pop
git stash list
git stash clear
git stash drop
git reset -hard //遇见合并过来的有冲突的代码,不想要了,,,直接回退到线上最新分支
git log //记住这个是查看提交(commit)历史
- 刚commit上去了错误的代码,不想push了,根据是否想保留本地编辑的代码做以下两种选择
git reset --hard //此操作可以清除刚commit的记录,但是也会删除本地改动的代码
git reset --sort // 此操作可以清除刚commit的记录,并且保留改动的代码
网友评论