git第一天学习

来源:互联网 发布:linux swap 设置 编辑:程序博客网 时间:2024/06/05 06:37

一.git了解

分布式版本控制系统

(1)之前用过svn版本控制系统,他们的区别是:

a.git是分布式的,svn不是

b.git把内容按原数据方式存储,而svn是按文件

c.git分支与svn的分支不同

d.git没有一个全局的版本号,而svn有

e.git的内容完整性要优于svn

(2)集中式vs分布式

集中式版本控制系统,版本库是集中存放在中央服务器的,干活的时候用自己的电脑,每次先要去中央服务器取得最新的版本,然后干活,完了再提交到中央服务器

特点:需要联网才能工作

分布式版本控制系统:没有中央服务器,每个人的电脑都是一个完整的版本库

特点:不需要联网,安全

二.git安装配置

1.安装地址:https://git-for-windows.github.io/

2.配置:

(1)用户信息:用户名称和邮件

$ git config --global user.name "runoob"$ git config --global user.email test@runoob.com


如果用了global,那么更改的配置文件就是位于你用户主目录下的那个,以后所有项目都会默认使用这里配置的用户信息

(2)查看配置信息

git config --list

三.创建版本库

1.选择合适的地方,创建一个空目录

2.git init把这个目录变成可以管理的仓库

四.工作区和暂存区

电脑里能看到的目录,叫做工作区

暂存区:git add把文件添加到暂存区,git commit就是往master分支上提交更改.

五.常见命令

git status 查看仓库当前的我状态

git diff 查看差异

git add a.txt  将文件添加到暂存区

git commit -m "描述"  提交

git reset --hard ^/commit id 回退

git log 查看提交历史

git reflog 查看命令历史

git checkout -- a.txt 可以丢弃工作区的修改或者恢复被删除的文件  / 其实使用版本库里的版本替换工作区中的版本,无论工作区是修改还是删除,都可以一键还原

git rm 用于删除一个文件

六.远程仓库

1.创建ssh key 

ssh-keygen -t rsa -C "email"

2.登录github,添加ssh key,将id_rsa.pub复制到ssh key文本框里面

先有本地库,后有远程库

1.在github添加远程库 create a new repo

2.在本地的learngit仓库下运行命令:

 git remote add origin git@github.com:xueYaFang/learngit.git

3.推送:第一次 git push -u origin master

以后:git push origin master推送最新修改

先创建远程库,再从远程库克隆

git clone git@github.com:xueYaFang/first.git

七.分支管理

(1).常用命令

查看分支:git branch

创建分支:git branch <name>

切换分支:git checkout <name>

创建+切换分支:git checkout -b<name>

合并某分支到当前分支:git merge<name>

删除分支:git branch -d <name>

查看分支合并图:git log --graph

(2)无法自动合并分支时,必须人工解决冲突,解决冲突后再提交

(3)分支管理策略:master分支稳定,仅用来发布新版本,创建新分支dev干活,小团队在分支dev干活,每个人在dev上都有自己的小分支,往dev上合并即可

     合并分支时,加上--no-ff参数就可以用普通模式合并,合并的历史有分支可以看出来,如果用fast forword合并就看不出来曾经做过合并

(4)bug分支:

git stash 可以将当前工作现场"储藏"起来,等以后恢复现场后继续工作

git stash pop修复后回到工作现场

(5)开发一个新feature,可以通过git branch -D<name>强行删除

八.标签管理

创建标签:

git tag<name>用于新建一个标签,默认为head,也可以指定一个commit id

git tag -a<tagname> -m "标签信息" 可以指定标签信息

git tag -s<tagname> -m "PGP签名" 可以用PGP签名标签

git tag 可以查看所有标签

创建的标签都只存储在本地,不会自动推送到远程,所以打错的标签可以在本地删除

git push origin<tagname>推送某个标签到远程

git push origin --tags 一次性推送全部尚未推送到远程的本地标签

删除远程的标签:

(1)删除本地的

git tag -d <tagname>

(2)删除远程的

git push origin:refs/tags/<tagname>

九.怎么参与开源项目的开发

用自己账号fork这个 项目->推送修改->发起pull request

十.码云

与github差不多,命令中github改为了gitee

十一.自定义git

git config --global color.ui true

忽略某些文件时,需要编写.gitignore

.gitignore文件本身要放到版本库里,并且对.gitignore做版本管理

配置别名 git config --global alias st status



小知识:win7下怎么图形化界面创建隐藏文件

将文件名改为.ssh.即可显示文件名为.ssh

原创粉丝点击