Git的使用
一:Git是什么?
Git是目前比较先进的分布式版本控制系统。
二:SVN与Git的最主要的区别?
SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽够大,速度够快,如果在互联网下,如果网速慢的话,就纳闷了。
Git是分布式版本控制系统,那么它就没有中央服务器的,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上。既然每个人的电脑都有一个完整的版本库,那多个人如何协作呢?比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。
三:使用git控制台进行本地操作
①打开Git Bash
②填写用户名和邮箱作为标识
分别输入以下两个命令:
git config --global user.name “此处填写用户名”
git config --global user.email “此处填写邮箱名”
此时可以输入git config --list 查看信息
③将本机中某个文件夹设为仓库
用cd 文件路径 到要被设为仓库的文件夹
然后输入git init将文件夹设置成仓库
此时repository在文件夹中多了一个隐藏文件夹.git
④在仓库中放入一个txt文件,用以模拟操作
现在在控制台输入git status查看在工作区是否有未转到本地仓库的文件
我们看到test.txt为红色字体,说明这个文件做过修改,但还没用保存到暂存区。现在
我们输入git add test.html 然后再输入git status 查看,发现test.html变为绿色,证明文件已经保存到暂存区。
注意:使用 git add 文件名 命令行将文件保存到暂存区。
然后我们输入git commit -m “备注信息” 命令将文件提交到本地仓库
此时文件夹中仍然有文件。只是本次工作树的操作已经提交给了本地仓库,此工作树中的内容与本地仓库储存的内容已经一致。
而不是将文件夹中的文件删除。
通过上面的操作我们可以得到结论。新放入工作区或者修改后的文件,当修改未提交给暂存区时,查看到的文件显示为红色。
当将修改的内容提交到暂存区时,查看到的文件显示为绿色。当文件提交到本地仓库后,文件显示为空。
因此我们得到向本地仓库保存文件的步骤为:
git add 文件名 → git commit -m “备注信息
版本回退
在txt文件中新加内容,保存到本地仓库。
输入git log 查看提交历史
版本回退的命令为:
git reset - -hard 这个命令是回退到上一个版本
git reset - - hard 版本号 回到某个版本号(版本号头几位就行)
此处我们输入第一次时的版本号:
git reset --hard 8c0f34
版本回退成功。此时我们去查看文件夹中的文件。
二、与远程仓库连接
登录https://github.com 进入注册的github账号
①配置github密匙
打开git bash 输入cd ~/.ssh查看是否存在密匙
如果显示没有密匙,则输入ssh-keygen -t rsa -C “邮箱地址”创建密匙
此时我们得到下面两个文件
打开.Pub文件复制里面的内容。打开github网站,点击右上角图标
输入ssh -T git@github.com测试ssh连接github。
点击git网站中右上角的加号,创建网络仓库
现在我们去远程仓库看一下变化
上传成功!!!!
一、创建分支
在实际工作中,项目可能需要几周才能完成, 每天只能写部分代码,如果立刻提交,则代码并没有写完,别人也不能用。
如果等代码写完再提交,又有丢失每天进度的风险。则可以新建一个属于自己的分支,别人看不到,等代码写完,一次性合并到原来的分支上。
输入 git checkout -b dev 命令行,创建好一个dev开支。
然后输入 git branch查看现有的分支
现在修改text中的内容,在dev上提交
然后输入git checkout master切回master分支
然后输入git merge dev 把dev分支合并到master分支
如果项目已经完成,可以输入git branch -d dev 来删除dev分支
因此:多人协作工作模式一般是这样的:
首先,可以试图用git push origin branch-name推送自己的修改.
如果推送失败,则因为远程分支比你的本地更新早,需要先用git pull试图合并。
如果合并有冲突,则需要解决冲突,并在本地提交。再用git push origin branch-name推送。
Git基本常用命令如下:
mkdir: XX (创建一个空目录 XX指目录名)
pwd: 显示当前目录的路径。
git init 把当前的目录变成可以管理的git仓库,生成隐藏.git文件。
git add XX 把xx文件添加到暂存区去。
git commit –m “XX” 提交文件 –m 后面的是注释。
git status 查看仓库状态
git diff XX 查看XX文件修改了那些内容
git log 查看历史记录
git reset --hard HEAD^ 或者 git reset --hard HEAD~ 回退到上一个版本
(如果想回退到100个版本,使用git reset –hard HEAD~100 )
cat XX 查看XX文件内容
git reflog 查看历史记录的版本号id
git checkout -- XX 把XX文件在工作区的修改全部撤销。
git rm XX 删除XX文件
git remote add origin https://github.com/tugenhua0707/testgit 关联一个远程库
git push –u(第一次要用-u 以后不需要) origin master 把当前master分支推送到远程库
git clone https://github.com/tugenhua0707/testgit 从远程库中克隆
git checkout –b dev 创建dev分支 并切换到dev分支上
git branch 查看当前所有的分支
git checkout master 切换回master分支
git merge dev 在当前的分支上合并dev分支
git branch –d dev 删除dev分支
git branch name 创建分支
git stash 把当前的工作隐藏起来 等以后恢复现场后继续工作
git stash list 查看所有被隐藏的文件列表
git stash apply 恢复被隐藏的文件,但是内容不删除
git stash drop 删除文件
git stash pop 恢复文件的同时 也删除文件
git remote 查看远程库的信息
git remote –v 查看远程库的详细信息
git push origin master Git会把master分支推送到远程库对应的远程分支上