首先git是什么就详细介绍了,用过git都知道它比svn的方便
安装Git
Windows平台安装Git,下载地址:https://git-scm.com
安装成功后,桌面右键,出现如下图标表示安装成功
初次使用的用户
-
用户信息
- 第一个要配置的是你个人的用户名称和电子邮件地址。这两条配置很重要,每次 Git 提交时都会引用这两条信息,说明是谁提交了更新,所以会随更新内容一起被永久纳入历史记录:
$ git config --global user.name "username" $ git config --global user.email "email@example.com"
-
为了方便以后使用可以设置SSH公钥
image.png$cd ~/.ssh //切换到相应目录,安装位置 $ls id_rsa id_rsa.pub known_hosts //如果是初次,ls里面是没有这几个文件的. //.pub 文件是你的公钥,另一个则是私钥。 如果找不到这样的文件(或者根本没有 .ssh 目录),你可以通过运行 ssh-keygen 程序来创建它们 $ssh-keygen //连续回车3次 $ cat ~/.ssh/id_rsa.pub //用于查看公钥
- 创建登录git账号
- 网址:https://github.com/
- 设置公钥如下
将上面的公钥复制粘贴
image.png-
开始干正事
-
git上创建一个线上创库
image.png
-
-
关键来了
//cd到创建的文件夹下
错误提示技解决
image.png出现这种错误是因为没有在github账号添加SSH key
解决方法
$ ssh-keygen -t rsa -C "username" //连续回车
//如果执行成功
$ cat ~/.ssh/id_rsa.pub //用于查看生成的公钥
//将公钥保存到 GitHub 中即可
下面重点、重点、重点开始进入使用阶段
- git使用教程网上已经很丰富了,可以自行查阅,这里推荐Git教程 - 廖雪峰的官方网站
-
Git忽略规则.gitignore梳理
初学者可先忽略此教程
- 这里主要介绍工作中可能遇到问题
项目团队不大,几人开发,应该使用的都是同一分支,开发者在开发不同模块,没有修改共同文件时,这个时候即使不做commit,拉去代码也是成功的,建议先提交再拉去
拉去出现冲突,此时需要我们先手动解决冲突,再提交推送,新推荐一个软件Visual Studio Code前端开发利器,很好的支持Git相关操作,小乌龟也不错,都挺轻量级工具
命令行
$ git diff
diff --cc gitTest/a.md
index 69367ae,62e065d..0000000
--- a/gitTest/a.md
+++ b/gitTest/a.md
@@@ -1,1 -1,2 +1,6 @@@
++<<<<<<< HEAD
+A first edit + 1+1
++=======
+ A first edit
+ K first edit
++>>>>>>> 18be8efb5fc2ab2ec6c65bdd9fb01edf3d48cd72
冲突文件a.md,vi 命令修改也行
<<<<<<< HEAD
A first edit + 1+1
=======
A first edit
K first edit
>>>>>>> 18be8efb5fc2ab2ec6c65bdd9fb01edf3d48cd72
//修改后内容如下
$ cat a.md
A first edit + 1+1
K first edit
//此时冲突已解决,提交自己的代码,add、commit、push
- 多人开发使用分支,常见问题(分支合并)
//创建并且换到dev分支
$ git checkout -b dev
//查看当前分支
$ git branch
* dev //* 表示当前分支
master
在dev分支修改a.md文件
$ cat a.md
A first edit + 1+1
K first edit
A dev first edit //这里是添加的一行
//提交并推
这里提交到了我们自己分支,真正发版的文件还是master
分支中的文件,所以我们把dev
分支的工作成果合并到master
分支上
//先切换到master分支
$ git chechout master
//查看当前分支
$ git branch
dev
* master
//可以查看devmaster分支状态,发现是没有修改的,因为我们修改的是dev
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working tree clean
//合并分支
$ git merge dev
Updating 52d9df0..fd715db
Fast-forward
gitTest/a.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
//查看合并后的a.md
$ cat a.md
A first edit + 1+1
K first edit
A dev first edit //此时master文件已经被修改
//后面我们可以删除dev分支或者继续切换到dev分支上继续玩耍
$ git branch -d dev //删除分支命令
Deleted branch dev (was b17d20e).
- 另一种场景,K同事在A同事合并之前提交代码到
master
分支
//先切换到master分支,拉去代码,并解决冲突
//再接着必须add 、commit冲突文件,否则无法merge
$ git merge dev
fatal: You have not concluded your merge (MERGE_HEAD exists).
Please, commit your changes before you merge.
//开始合并
$ git merge dev
Auto-merging gitTest/a.md
CONFLICT (content): Merge conflict in gitTest/a.md //合并出现冲突,那就解决
Automatic merge failed; fix conflicts and then commit the result.
//之后重复上面提交,最后push ,master分支已经是最新的了
既然master
最新的了,dev
分支也是要更新的,切换到dev
分支重复上面工作
期间可能会遇到其他问题,请在评论区留言,相互讨论,一些使用小技巧需要多注意下,可以提高开发效率
希望对你有所帮助
网友评论