git学习笔记

参考这个博客讲的非常好: 

​​​​​​​解决冲突 - Git教程 - 廖雪峰的官方网站 (liaoxuefeng.com)

集中式版本控制系统,版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。集中式版本控制系统最大的毛病就是必须联网才能工作。

这个文档已经写的很清晰了:

windows安装git

$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"

git config命令的--global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。

创建版本库

在当前文件夹下:

$ git init
Initialized empty Git repository in /Users/michael/learngit/.git/

将文件添加到版本库

将文件添加到版本库分两步,一步add,一步commit。git add 目的是将修改文件由工作区提交到暂存区,可以多次提交。

工作区和暂存区

工作区:电脑里能看到的目录。

版本库(Repository):暂存区,还有Git为我们自动创建的第一个分支master。

第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区;

第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。

因为我们创建Git版本库时,Git自动为我们创建了唯一一个master分支,所以,现在,git commit就是往master分支上提交更改。

查看文件内容。

$ cat 文件名


然后commit操作,将文件从暂存区提交到版本库

单个文件:

$ git add readme.txt
$ git commit -m "wrote a readme file"

 -m后面输入的是本次提交的说明,可以输入任意内容

查看文档内容:

多个文件:

添加制定目录下的文件:

config目录下及子目录下所有文件,home目录下的所有.php文件

git config/*
git home/*.php

 添加所有的文件

git add .
git add --all

 然后再提交。

连接gitee

首先需要将自己的ssh公钥输入给gitee

关于windows获取公钥可以参考这个链接:

Windows下生成ssh密钥,并用ssh免密访问Linux服务器_windterm怎么添加密钥对-优快云博客

gitee中也有提示如何操作。

然后检查是否连上了公钥:

$ ssh -T git@gitee.com

 然后就可以在gitee中创建仓库,创建后将这个仓库和本地仓库连接:

git remote add origin 仓库地址

这里需要输入gitee的账号密码,账号是个人中心中@后的数字。

接下来将仓库文件上传到gitee 

git push -u origin "master"

当我们有添加文档时需要重新在本地add、commit然后push之后才能同步到gitee。

修改删除文件

 修改文件

修改文件后需要重新commit。

 git status命令可以让我们时刻掌握仓库当前的状态 

$ git status

$ git status
On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

	modified:   readme.txt

no changes added to commit (use "git add" and/or "git commit -a")

git diff,看具体修改了什么内容

$ git diff 文件名

版本回退

查看版本日志:

$ git log

回退之前的版本:

$ git reset --hard 版本号不需要输全

 再次恢复到新的版本,需要找到那个版本的id,用如下命令查看

$ git reflog

每一次修改文件后都需要先add放入暂存区后再提交,否则无法进入master里。因为Git跟踪并管理的是修改,而非文件。

撤销修改

1.修改后还没有add,直接丢弃工作区的修改。

$ git checkout --文件名

命令git checkout -- readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:

一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;

一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。

总之,就是让这个文件回到最近一次git commitgit add时的状态。

2.修改后add操作了。但是没有commit。

$ git reset HEAD readme.txt
Unstaged changes after reset:
M	readme.txt

git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD时,表示最新的版本。 

3.修改后,commit了。利用版本回退。不过前提是没有推送到远程库。

删除文件

删除工作区的文件

$ rm test.txt

 会导致作区和版本库就不一致。

用命令git rm删掉版本库中的文件,并且git commit

$ git rm test.txt

$ git commit -m "remove test.txt"

另一种情况是删错了,因为版本库里还有,所以可以很轻松地把误删的文件恢复到最新版本:

$ git checkout -- test.txt

分支管理

分支在实际中有什么用呢?假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,如果立刻提交,由于代码还没写完,不完整的代码库会导致别人不能干活了。如果等代码全部写完再一次提交,又存在丢失每天进度的巨大风险。

现在有了分支,就不用怕了。你创建了一个属于你自己的分支,别人看不到,还继续在原来的分支上正常工作,而你在自己的分支上干活,想提交就提交,直到开发完毕后,再一次性合并到原来的分支上,这样,既安全,又不影响别人工作。

其他版本控制系统如SVN等都有分支管理,但是用过之后你会发现,这些版本控制系统创建和切换分支比蜗牛还慢,简直让人无法忍受,结果分支功能成了摆设,大家都不去用。

但Git的分支是与众不同的,无论创建、切换和删除分支,Git在1秒钟之内就能完成!无论你的版本库是1个文件还是1万个文件。

git问题error: remote origin already exists.

如果你clone下来一个别人的仓库,在此基础上完成你的代码,推送到自己的仓库可能遇到如下问题:
error: remote origin already exists.表示远程仓库已存在。
因此你要进行以下操作:
1、先输入git remote rm origin 删除关联的origin的远程库
2、关联自己的仓库 git remote add origin https://gitee.com/xxxxxx.git
3、最后git push origin master,这样就推送到自己的仓库了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值