【Git】团队协作-互联网公司管理代码工具

一、Git介绍

git是一个分布式版本控制工具,免费的开源的。可以用于项目代码管理。
官方网站:git官网
image.png

1.1 何为版本控制

版本控制就是类似于一个历史记录的工具。比如说他
xxxx年xx月xx日 版本v_1.0
xxxx年xx月xx日 版本v_1.1
xxxx年xx月xx日 版本v_2.0

版本控制是一种记录文件内容变化的,以便查阅特定版本修订情况的系统
版本控制其实最重要的是可以记录文件来修改历史记录,从而让用户能够真正的查看历史版本,以方便版本切换。

1.2 为什么需要版本控制

个人开发过渡到团队协作。平时我们在学习和记笔记的时候,多多少少都会利用到版本控制。比如说我们更新迭代我们的学习笔记。在企业开发中,因为涉及到了多人的团队合作,有的时候小王写了一个功能A的代码,小李第二天对这个功能进行了修改和完善。为了使得小王和小李的代码都能发挥出作用,这个时候就需要版本控制。
小王第一天写了一个大概的功能A的思路框架,利用版本工具提交了一份,第二天小李更新代码看到了,顺手完善了这个功能A,提交了,这样小王就可以看到小李优化完善后的功能A。

二、git的工作机制

2.1git机制图

image.png

  • git的工作区是指,在平时修改代码的地方,从工作区的代码暂存到暂存区使用的命令是:git add xxx
  • git的暂存区是在本地库和工作区的一个桥梁,平常修改代码在工作区,修改完成后,需要提交到本地仓库,这时候需要先将修改的代码提交到暂存区。从暂存区到本地仓库:git commit -m “记录信息”
  • git本地仓库:本地初始化git形成的文件夹。将本地仓库的代码提交到远端仓库里 git push;从远端仓库拉去代码 git pull

2.2 git和代码托管中心

代码托管中心是基于网络服务的远程代码仓库,一般我们简单的成为远程库,origin

  • 局域网
    • Git Lab
  • 互联网
    • gitee github

2.2 git的安装

三、git的常用命令

git config --global user.name 用户名    					设置用户签名
git config --gloabl user.password 用户密码  			设置用户密码
git init 																				初始化git仓库
git status 																			查看本地仓库中状态
git add 文件名  																	将本地工作区内有修改的文件提交到暂存区内
git commit -m "日志信息" 文件名   								将暂存区的文件提交到本地仓库
git reflog 																			查看历史的日志信息
git reset --hard 版本号 													版本回退

3.1 设置用户签名

基本语法:

  • git config --global user.name 用户名 设置用户签名
  • git config --gloabl user.password 用户密码 设置用户密码

只用设置一次用户签名及可以,在桌面的任意位置右键,前提是安装好了git
在git bash 中输入上述的 命令
查看是否成功,在用户目录下的.gitconfig文件下,签名的作用,是为了区分那一个人操作了这个文件
image.png

3.2 初始化本地仓库

基本语法

git init

案例实操
image.png

3.3 查看仓库状态

基本语法

git status

image.png
因为此时没有过任何的操作,所以,这里输出的日志信息(所在的分支是master分支,没有提交文件记录,创建或者复制文件并且使用git add命令才会有记录)
【故此,创建一个文件】
image.png
【使用 git add】

3.4 提交到本地暂存区

基本语法

git add 文件名

image.png
此时发现,git add完了之后,在使用git status命令查看后,提示暂存区有一个暂未提交的文件,如果你想从暂存区移除此文件,可以使用git rm --cached 文件命令移除暂存区

3.5 提交本地仓库

基本语法

git commit -m "日志信息" 文件名

image.png

3.6 查看日志

基本语法

git log # 查看详细日志
git reflog # 查看历史日志

image.png

3.7 文件的修改

当我们使用vim编辑器对demo.txt进行修改之后,在使用git status查看状态会出现下图:
image.png
如此我们只需按照上面的步骤,再次 git add ;git commit操作
image.png
再次提交完成后,查看git的状态,以及查看日志发现此时的日志执政HEAD指向的第二个版本。那么证明,我们第二次修改的记录生效了

3.8 版本回退

基本语法

git reset --hard 版本号

案例实操

wyp@weiwei MINGW64 ~/Desktop/git-demo (master)
$ cat demo.txt
11111
22222
hahahah 333333
hahhaha 333333


wyp@weiwei MINGW64 ~/Desktop/git-demo (master)
$ git reflog
bef048b (HEAD -> master) HEAD@{0}: commit: 第三次修改
2028676 HEAD@{1}: commit: 第二次修改
94c6198 HEAD@{2}: commit (initial): 第一次提交

wyp@weiwei MINGW64 ~/Desktop/git-demo (master)
$ git reset --hard 2028676
HEAD is now at 2028676 第二次修改

wyp@weiwei MINGW64 ~/Desktop/git-demo (master)
$ git reflog
2028676 (HEAD -> master) HEAD@{0}: reset: moving to 2028676
bef048b HEAD@{1}: commit: 第三次修改
2028676 (HEAD -> master) HEAD@{2}: commit: 第二次修改
94c6198 HEAD@{3}: commit (initial): 第一次提交

wyp@weiwei MINGW64 ~/Desktop/git-demo (master)
$ cat demo.txt
11111
22222
hahahah
hahhaha


wyp@weiwei MINGW64 ~/Desktop/git-demo (master)

image.png

四、git分支

4.1 什么是分支

在版本控制中,同时推进多个任务,为每个任务,我们就可以创建每个人物的单独分支,使用分支意味着程序员可以从开发主线上分离开来,我们可以在我们的分支里自己开发自己的代码。不影响主线分支的使用。

4.2 分支的好处

同时并行的推进多个功能的开发,提高开发效率。
各个分支在开发的过程中,如果某一个分支开发失败,不会影响其他分支的使用,只需要将失败错误的分支删除即可。

4.3 分支的操作

git branch 分支名				# 创建分支
git branch -v						# 查看分支
git checkout 分支名			# 切换分支
git merge 分支名					# 将指定的分支合并到当前分支

【查看当前所在的分支】
image.png
【创建分支】
image.png
【切换分支】
image.png
【在test分支下修改提交文件】

$ cat demo.txt
11111
22222
hahahah 333333
hahhaha 333333


wyp@weiwei MINGW64 ~/Desktop/git-demo (test)
$ vim demo.txt

wyp@weiwei MINGW64 ~/Desktop/git-demo (test)
$ git status
On branch test
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   demo.txt

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

wyp@weiwei MINGW64 ~/Desktop/git-demo (test)
$ git add demo.txt

wyp@weiwei MINGW64 ~/Desktop/git-demo (test)
$ git commit -m "第四次提交 test 分支修改" demo.txt
[test 692c890] 第四次提交 test 分支修改
 1 file changed, 1 insertion(+), 1 deletion(-)

wyp@weiwei MINGW64 ~/Desktop/git-demo (test)
$ git status
On branch test
nothing to commit, working tree clean

wyp@weiwei MINGW64 ~/Desktop/git-demo (test)
$ git reflog
692c890 (HEAD -> test) HEAD@{0}: commit: 第四次提交 test 分支修改
bef048b (master) HEAD@{1}: checkout: moving from master to test
bef048b (master) HEAD@{2}: reset: moving to bef048b
2028676 HEAD@{3}: reset: moving to 2028676
bef048b (master) HEAD@{4}: commit: 第三次修改
2028676 HEAD@{5}: commit: 第二次修改
94c6198 HEAD@{6}: commit (initial): 第一次提交

wyp@weiwei MINGW64 ~/Desktop/git-demo (test)
$ cat demo.txt
11111
22222
hahahah 333333
hahhaha 333333
test 444444444

wyp@weiwei MINGW64 ~/Desktop/git-demo (test)

4.4 分支合并(正常)

在git命令里,合并分支,总共有两种方式

  • git merge
  • git rebase

这两种方式有区别:

git merge与git rebase的区别

个人建议使用git merge的方式
基本语法:git merge 合并的分支
注意:这个merge语法把指定的分支合并到当前分支下
image.png

五、冲突解决

5.1 分支合并(冲突合并)

image.png
我相信在我们日常的开发中,难免会遇到这种情况,就是代码分支合并时发生了冲突,原因很简单:
master分支对demo.txt进行了修改并提交
test分支也对demo.txt进行了修改并提交。
【如何解决冲突】
遇到这种情况,我们只能手动修改冲突,即:
image.png
遇到这种的:
<<<< HEAD的是当前版本所修改的地方,

>>>> test 是test分支下所修改的地方,
>>>> 这之后我们往往希望的是将两次修改的地方均保存,那么就需要把他和并成这样,并删除分隔符
>>>>

image.png

wyp@weiwei MINGW64 ~/Desktop/git-demo (master|MERGING)
$ cat demo.txt
11111
22222
hahahah 333333
hahhaha 333333
<<<<<<< HEAD
test 444444444
master modify here
=======
test 444444444 test modify here
>>>>>>> test

wyp@weiwei MINGW64 ~/Desktop/git-demo (master|MERGING)
$ vim demo.txt

wyp@weiwei MINGW64 ~/Desktop/git-demo (master|MERGING)
$ git add demo.txt

wyp@weiwei MINGW64 ~/Desktop/git-demo (master|MERGING)
$ git status
On branch master
All conflicts fixed but you are still merging.
  (use "git commit" to conclude merge)

Changes to be committed:
        modified:   demo.txt


wyp@weiwei MINGW64 ~/Desktop/git-demo (master|MERGING)
$ git commit -m "merge master分支和test分支"
[master aeec332] merge master分支和test分支

wyp@weiwei MINGW64 ~/Desktop/git-demo (master)
$ git status
On branch master
nothing to commit, working tree clean

wyp@weiwei MINGW64 ~/Desktop/git-demo (master)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
React Native(RN)是一个用于构建iOS和Android应用的开源框架,它使开发人员能够使用JavaScript和React来编原生应用。其中,React是一个用于构建用户界面的JavaScript库,使开发人员能够使用组件化和声明式编程的方式构建应用程序。RN允许开发人员使用相同的代码库编iOS和Android应用程序,提高了开发速度和代码重用率。 聊天室是一种在线即时通信模式,它允许人们在互联网上交流,分享想法和信息。聊天室常常采用文本、语音和视频等多种形式的交流方式。使用React Native构建聊天室可以大大简化开发流程,同时使用React Native以及各种第三方插件也可以实现聊天室的语音功能。 Git是一种版本控制系统,它允许开发人员协同工作,管理和追踪代码的变化。Git是一个开源项目,它被广泛应用于软件开发和其他类型的项目管理当中。Git提供了一系列工具,如分支,合并和补丁等,从而能够有效地管理大型代码库。 在React Native开发中,Git可以作为代码管理工具,实现团队协作和版本控制。使用Git管理React Native聊天室项目可以实现分布式开发,在多人协同开发中方便代码版本的管理和共享。当出现Bug或需求变动时,开发人员可以轻松地回退到之前的代码版本,避免对整个项目造成影响。 总之,React Native和Git都是非常有用的工具,它们可以使开发人员更加高效地开发和管理项目,实现更快、更稳定的产品发布。对于React Native的聊天室项目而言,Git可以更好地实现代码管理和版本控制,语音功能则是实现实时交流的重要途径。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@WAT

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值