Git版本控制器安装和配置

6 Git版本控制

6.1 简介:Git(分布式版本控制系统)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。

github

6.2 下载:可以从Git官网直接下载安装程序,然后按默认选项安装即可

官网:https://git-scm.com/

直达地址:https://git-scm.com/download/win

6.3 基本配置

a配置用户名:git config --global user.name 'yourname'

b配置邮箱:git config --global user.email 'email@example.com'

c生成公钥ssh key:这个是必须的,用于标识你的机器身份,无论使用github,oschina等代码管理平台(需要去平台注册账号),都需要在相应的个人中心添加ssh key

c1:ssh-keygen -t rsa -C "email@example.com"

c2:然后一路回车,不需要输入任何密码之类,生成ssh key pair

c3:ssh-add ~/.ssh/id_rsa

c4:执行上述步骤后查看生成的sshkey

cat -/.ssh/id_rsa.pub

查看生产的秘钥 cat ~/.ssh (里面也有地址,可以进入文件夹内查看),我们要用的就是公钥,然后把里面的值都复制来,然后填充到git仓库中。

c5:手动复制生成的公钥,本教程使用oachina的gitlab为例,github添加公钥的做法类似。用刚刚命令添加的用户邮箱注册oschaina的gitlab账号(https://gitlab.com/),然后登陆gitlab,点击右上角的个人资料,进入个人ssh公钥配置,把刚刚复制的公钥添加进去,确认提交。

Tips:

1.因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址。你也许会担心,如果有人故意冒充别人怎么办?这个不必担心,首先我们相信大家都是善良无知的群众,其次,真的有冒充的也是有办法可查的。

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

 

6.4 其他基本配置

a避免中文乱码:git config --global gui.encoding utf-8

b避免git status显示中文文件名乱码:git config --global core.quotepath off

c让git不要管Windows/Unix换行符转换的事:git config --global core.ignorecase false

dWindows还需要配置:git config --global core.autocrlf false

 

6.5基本使用示例-远程建立仓库,本地拉取和上传文件到远程仓库(这个需要gitlab或github创建远程仓库)

 

1.线上建立项目(换github演示一下,gitlab也类似)

如:

2.本地通过Clone with SSH拉取到电脑(SSH方式在配置好之后,不需要验证账号和密码,而另一种https方式每次操作需要验证账号和密码)

拉取项目 git clone ssh-git地址(git@github.com:smaluv/mymall-fe.git)

3.但是第一拉取的时候,如果你没有执行6.2的C3生成配置密钥的步骤,会报没有权限的错误,即本地和远程没有建立验证,所以会有一个公钥建立的操作,这个ssh key建立好之后就可以愉快的玩耍了。详细可以查看6.2的C3生成配置密钥的步骤。

3.1 配置秘钥:使用命令 ssh-keygen -t rsa -C "smaluv@qq.com"

 

查看生产的秘钥 cat ~/.ssh (里面也有地址,可以进入文件夹内查看),我们要用的就是公钥,然后把里面的值都复制来,然后填充到git仓库中。

3.2 将公钥文件值填充到git线上仓库中:最后的allow记得勾选,因为我们要写入文件,不勾选,意味着只能读取文件。

 

Tips:配置密钥也可参考(详细可参照https://blog.csdn.net/u013778905/article/details/83501204 或者 https://www.imooc.com/article/72092?block_id=tuijian_wz

3.3 添加成功后,重新git clone 拉取一下,就可以看到成功啦。(Tips 此时拉取的项目存放位置可以指定,像我就拉取到shop_onlineclass目录下,方法就是先cd 到要存放的路径下,然后在拉取项目)

Git同步

项目同步的方式其实有两种,第一种就是上面说的直接拉取线上的项目到本地来.第二种就是本地新建项目后,在push到线上去,如下:

4.本地仓库管理线上git仓库

进入到项目存放文件的目录中(进入项目的根目录)

4.1 初始化项目 git init

执行完成之后,文件中会多出一个.git文件,这意味着该文件是一个git可识别的文件,即给git作了标识;

4.2 将本地文件和远程git管理通过ssh地址

git remote add origin git@git.......git ssh地址

4.3 在将远程的代码拉下本地作比较

git pull origin master (其中origin代表是远程服务器 master代表是分支)

4.4 拉取远程代码后,需要本地git去对比下远程和本地代码的区别,判断当前本地代码文件的状态

git status

可以看到,本地git对比状态检查到了一个新增的test.html文件(远程git中没有,需要我们提交)

4.5 提交文件(add .提交所有文件, add +指定文件名,应该可以提交指定的文件吧-待测试)

git add .

4.6 正式提交缓存

git commit -am '本次提交的一些说明' -am意思提交全部并加上注释

4.7 正式提交缓存到线上

git push --set-upstream origin master

4.8 提交完成之后,我们再去线上git看下记录,就可以看看我们提交的代码记录了。

5.一些额外的配置,如git_ignore,用来告诉git一些文件不需要同步(如一些sublime一些的自动生成的缓存文件,nodejs的一些包)

(不一定需要跟这个一样使用命令生成和编辑,这里只是为了让自己熟悉命令操作语句)

5.1 在git项目根目录下生成.gitignore文件

vim .gitignore

5.2 在.gitnore文件新增ignore的一些规则,被匹配到的文件就不会被git追踪并上传

.DS_Store ---sublime生成一些缓存,不需要追踪

/node_modules/ ---nodejs的npm生成的一些包,内存挺大的有几百兆,没必要上传,需要的时候线上生成下就好了

/dist/ ---打包之后的文件,也是没必要同步追踪的

5.3 分支管理

一般开发时,我们不在master分支上开发,master只作为可读分支,要开发时却换到版本分支上,如下:

git checkout -b mymall-1.0

其中checkout表示切换分支,-b 是表示当前分支没有建立,立马建立一个分支 mymall_1.0 新建的分支 ------新建一个分支mymall_1.0并切换

查看项目的分支 git branch,其中带*号表示当前所处的分支;

切换checkout分支后表示我们所有的项目文件都在改分支下操作,即不在master分支下操作。

6.终极提交,项目在提交代码时,一定要先回到项目根目录,然后执行git操作;

其中,当存在空文件夹时,git是不会识别这些空文件夹的,只有等到空文件夹中有文件时,才会同步检测到;(git只追踪文件和文件的父目录)

 

7总结 项目常用的命令(步骤)

7.1 先切换到分支

7.2 拉取线上最新代码和本地修改的情况比对

git merge origin master //多人开发提交前一定要先合并分支

git pull origin master 跟新本地同远程的文件库,防止代码混乱,提交失败

7.3 比对

git status

7.4 提交添加

git add .

7.5 提交信息备注

git commit -m "想要加的信息"

7.6 正式提交 git push

在第一次提交(或第一次提交给分支时,用git push --set-upstream origin master(or分支branch)

git push -u orgin master/分支 提交文件(git push 即可)

还有一般一些重大版本提交会打tag(git push提交完之后)

git tag tag-dev-initial(tag名称)

git push origin tag-dev-initial

一些基本的命令语句:

命令终端清除历史命令:cls; --清屏

ls 查看当前文件夹中的文件

cd ../回到上一层

cd 进入到某一个目录中

rm -rf + mymall-fe 删除文件夹 rm移除 -rf 移除文件 mymall-fe文件夹名

rm filename 删除指定的单个文件--rm test.html

mkdir + filename 新建文件夹 make dir 文件夹+filename

vim fileanme.txt 创建文件

vim test.html可以生成一个文件并编辑该文件 按i是文件插入操作,输入完成后按esc推出插入模式,并按' :wq '保存退出;

ls -al 显示全部的文件,这样不会忽视一些隐藏文件

ls 显示文件,但是一些隐藏文件不出出现,因为linux下这文件不会被发现

cat filename 通过cat可以查看文件的内容

 

 

在Windows下使用git时出现 warning: LF will be replaced by CRLF in xxx.

由于Linux中的换行符是LF,而Windows中的换行符是CRLF,如果想用Windows下的git管理来自Linux的文本文件,git会默认将LF转换成CRLF,并发出烦人的warning。解决办法如下:

进入目标仓库的最上层目录执行:

git config core.autocrlf false

部分博文中提到先将.git文件删掉(rm -rf .git)将.git文件夹删掉然后再用git config –global core.autocrlf false对本地的所有git仓库都执行禁止自动转换的命令,然后重建该仓库,这样未免牵扯太大,而且直接删掉.git会丢失以前的commits。惊醒新人;

tips:该wraning问题不大,不修改问题也不大。

 

conmit的时候出现Run git config --global user.email "you@example.com" git config --global user.name "Your Name" to set your account's default identity. Omit --global to set the identity only in this repository.

这个配置问题,说明之前的.config文件配置用户名和邮箱错误,只需要在当前下重新配置一下就好

git config --global user.email "smaluv@qq.com"

git config --global user.name "smaluv"

然后重新执行git commit -am '第一次修改'

 

常用的几个命令:

git clone ***********

git add . 提交文件添加

git commit -m "想要加的信息"

git pull origin master 跟新本地同远程的文件库,防止代码混乱,提交失败

git push -u orgin master 提交文件

 

提交出现另外如打标签的窗口

两次 commit 需要合并(merge),可以将这个看作是给这个merge 打标注(vim编辑)

输入 i 进行编辑模式

按esc 退出编辑模式

输入 :wp 进行保存并退出 --->: 是指令的开始符,w是保存,q是退出

不想打任何备注可以直接在进入这个界面的时候直接 :q 就可以退出

--------------------------------------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值