网站推广常用的方法,装饰公司网站方案,浙江信息港证件查询,关于建设网站业务系统的请示1. 为啥推荐使用git命令行
我发现公司有很多的同事都喜欢使用git的GUI界面工具#xff0c;喜欢鼠标点点点就完成了代码的提交#xff0c;这种方式的确是比较简单便捷#xff0c;但是却存在风险。先上一个事故给大家醒醒脑。 VScode Git 界面操作引发的惨案
上面的惨案是VS… 1. 为啥推荐使用git命令行
我发现公司有很多的同事都喜欢使用git的GUI界面工具喜欢鼠标点点点就完成了代码的提交这种方式的确是比较简单便捷但是却存在风险。先上一个事故给大家醒醒脑。 VScode Git 界面操作引发的惨案
上面的惨案是VSCode的一个用户通过Git界面执行了git init 后无意间按了clean all按钮这个按钮封装的命令应该是git clean -d -f 命令会把所有的未加入git的文件删除。因为这个用户可能是git小白不明白clean在git的含义导致他的项目中5000多个文件全部被删除了。他还打算去Windows的垃圾箱中恢复那5000多个文件但是现实是残酷的git clean 是不会调用垃圾箱的API的所以这个用户永久的失去了他的项目所以他发了很多和FUCK xxx。 其实推荐使用git命令行的理由主要有三个 1Git命令行的功能强大GUI界面只是封装了一小部分 2先学好命令行后使用任何的GUI工具都是如鱼得水 3Git命令行的很多操作可以优化效率比GUI快很多 注意如果你对git命令已经很熟悉了使用Git命令行还是界面工具其实都差不多不需要纠结该用哪一个不该用哪一个但是假如你是Git小白建议从Git命令学起
知道了学习Git命令行的必要性下面让我们一起看下git的基本命令操作吧这里做一个抛砖引玉的作用欢迎大家一起讨论git命令的妙用
2. Git命令的基本操作讲解
2.1 Git 命令的仓库操作
仓库就是存储项目代码的地方即我们计算机磁盘下的目录。git仓库分为本地仓库和远程仓库。本地仓库是指本地存储代码的根目录以及子目录远程仓库是指放在服务器端存储代码的一个目录。仓库相关的命令如下
2.1.1 新建本地仓库
主要是用于工程初始化在磁盘上新建一个工程目录然后在根目录下执行下面的目录然后本地仓库就建好了
git init2.1.2 检出仓库
当我们需要加入一个新项目的时候一般都会获得新项目的管理员分配的git仓库地址然后我们可以在本地选择一个合适的目录执行下面的命令就可以把远程仓库的代码下载到本地了。此时本地仓库和远程仓库默认是关联的。
git clone https://github.com/magnusja/libaums.git要下载github上的仓库也可以使用这种方式
在github的仓库界面拿到仓库的链接后执行git clone 命令下载仓库。
2.1.3 查看远程仓库
假设我们的同事加入了我们的项目想拉代码了解下项目此时刚好项目负责人不在我们又不想去浏览器记录上去进到服务器里查看我们项目的git链接但我们又需要马上拿到这个git链接给到同事这时我们就可以执行下面的命令
git remote -v如果执行结果是空的证明你的本地仓库没有和远程仓库关联。成功的话结果如下 2.1.4 添加/删除远程仓库
在项目刚开始搭建的时候我们在本地建立了一个本地仓库另外需要在服务端新建一个远程仓库此时远程仓库与本地仓库没有关联关系我们本地仓库的文件无法推送到远程仓库远程仓库的代码文件也无法被拉取到本地这时需要执行下面的命令去添加本地仓库和远程仓库的关联关系
git remote add origin https://xxxxx/xxx.git这里的origin是远程仓库的名称可以自己随便取后面的url是远程仓库的http地址
如果我们想切断与远程仓库的关联关系也就是删除远程仓库平时极少用到命令如下
git remote rm origin2.1.5 拉取/推送远程仓库
每次在开始修改文件或者提交文件的时候需要先从远程仓库中拉取最新的代码确保本地仓库的代码是最新的命令如下
git pull origin devorigin 是远程仓库的名称dev是拉取代码所在的分支名称 我们开发完代码后将代码提交到本地的仓库这时需要我们推送到远程仓库命令如下
git push origin masterorigin 是远程仓库的名称master是代码主分支名称也可以是其他分支的名称
2.2 Git 命令的基本操作
3.2.1 查看文件的状态
当我们修改了本地仓库中的文件后可以使用下面的命令查看我们修改的文件
git status当然我们可以加参数来看具体的操作 比如执行: git status -s 在文件的前面会出现AM的字样这个意思是本次的变更包含增加A和修改操作M
3.2.2 查看变更内容
当我们修改了文件的内容后我们可以通过git命令查看变更的内容命令如下
git diff #变更的文件需要注意的是git diff 命令只能比较未被添加到暂存区的内容。查看 git add过的内容 git diff --cached
3.2.3 添加/提交/推送文件
当我们修改或者新增一个文件后我们可以执行项目的命令添加到文件的暂存区 #添加指定文件到暂存区
git add xxx.txt#添加所有文件到暂存区
git add .
git add -A我们执行完git add 命令后我们的文件被添加到了暂存区接下来就是执行提交命令将我们的修改提交到本地仓库
# xxx 是本次提交的描述信息
git commit -m xxxxx当文件被提交到本地的代码仓库后其实我们的代码还是有丢失的风险因为我们的机器如果坏了就难受了所以我们需要把代码推送到远程仓库执行下面命令
git push origin master3.2.4 撤销修改
当文件没有执行git add 命令的时候我们如果想要撤销我们的修改我们可以执行下面的命令
#撤销已编辑的内容恢复到未修改前的状态
git checkout xxx.txt假设我们的代码已经提交到了暂存区想要恢复到以前的版本命令如下
#撤销add操作但是会保留已编辑的内容
git reset HEAD xxx.txt如果我们的代码已经提交到了本地仓库这时本地仓库会产生一个版本号我们可以使用版本号撤销已经提交的代码
git reset --mixed 版本号git reset命令的参数有mixed、soft、hard: –mixed 默认是这种代表撤销git add和git commit的操作保留编辑器的代码 –soft代表撤销git commit不撤销git add操作同时保留编辑器的代码 –hard参数很暴力直接撤销commit和add的操作撤销所有改动的代码当你决定用 --hard参数的时候就代表着你应该已经决定了放弃修改过的所有代码。 如果你的代码已经push到了远程仓库这时候需要我们先把本地仓库的文件撤销到指定版本然后再把撤销后的版本再push到远程仓库这里的操作比较危险因为可能会涉及到别人的修改所以这部分我就不讲解了感兴趣的可以自己百度 当代码撤销完后我们后悔了想恢复到之前的版本但是我们又找不到版本历史变更记录了这时候不要慌可以使用下面的命令试试
git reflog执行这个命令后会列出最近的代码记录然后找到对应提交的版本号做下cherry-pick或者git reset 就可以了。
2.3 Git 命令的分支操作
之前的所有操作都是在master分支也就是主分支上进行的分支操作的命令主要是用于创建分支、切换分支、查看分支、合并分支这些操作。
2.3.1 创建本地分支
#创建本地分支但是不会切换到创建分支上branch_name是分支的名称
git branch branch_name
#创建本地分支并切换到创建的分支上branch_name是分支的名称; 如果分支已创建则切换到分支上
git checkout -b branch_name2.3.2 创建远程分支
创建远程分支需要先在本仓库创建本地分支然后推送到远程仓库远程的分支就创建好了
git push origin branch_name2.3.3 查看所有分支
git branch -a2.3.4 查看远程所有分支
git branch -r2.3.5 查看本地所有分支
git branch2.3.6 切换分支
git checkout branch_name2.3.7 合并分支
把另一个分支上的内容与当前分支进行合并合并后会生成一次合并的提交记录。
#当前分支是dev2合并dev分支内容到dev2 git merge dev
#推送合并后dev2分支内容到远程仓库
git push origin dev23.3.8 删除分支
#删除本地分支
git branch -d dev
#删除远程分支origin为远程仓库名称dev为远程分支名称
git push origin :dev2.4 Git 命令的标签操作
我们每一次的代码提交都会生成一个版本号每个版本号之间连接起来就会形成一条线只要不断有新提交生成这条线就会一直延伸下去打一个标签tag好比在这条线作了一个标记。项目在迭代开发的时候每开发完一个版本就在分支上打一个tag然后运维组依据这个tag发布测试环境、灰度环境由测试组进行测试验证开发组继续在原来的分支上进行迭代开发提交内容彼此之间不受影响。
2.4.1 查看标签
git tag2.4.2 创建标签
#在本地打一个标签
git tag TAG_20230214
#推送标签到远程仓库
git push origin TAG_20230214 2.4.3 删除标签
#删除本地仓库上的标签
git tag -d TAG_20230214
#删除远程仓库上的标签
git push origin:TAG_20230214 2.5 Git 命令之冲突解决
2.5.1 为啥会产生冲突
代码冲突简单来说就是同一个文件的同一个位置都修改了且内容不同会产生冲突。例如在文件A第十行你添加了一个“hello world”另外一个同事在文件A的第十行添加了一个“helloworld”并且早于你提交远程仓库你再提交的时候就会发生冲突。这里需要注意的是所谓的同一个位置可能是一行代码、也可能是几行。
2.5.2 解决冲突
解决冲突就是决定你和同事修改的代码是留你自己的代码还是留同事的代码还是你们的代码需要共同保留做一些局部的删减这就是解决冲突的过程。解决完后将你的代码add到暂存区然后执行
git merge --continue然后提交就可以了如果是cherry-pick执行
git cherry-pick --continue如果要放弃你的修改则执行
git merge/cherry-pick --abort3.Android Studio Git插件搭配git命令行提效
3.1 查看git的提交记录 3.2 查看提交的人 3.3 快速查看对比本地的修改和远程分支的差异
等等我比较推荐使用Git命令行和Android Studio的Git插件搭配使用。效率会提升很多
总结
Git命令其实还有很多无法一一穷尽我们用命令行不是为了装逼而是为了更安全、更高效的进行项目开发。由于是团队开发所以我们在合并代码和提交代码时都需要更加小心否则因为你的提交干掉了别人的代码这会让别人的辛苦变成一场空如果学好git命令行这些问题都能很好的避免。而且命令行学好了操作图形界面更是如鱼得水。在工作中我们可能会遇到各种各样提交代码的问题这时候我们去学习好Git命令行能快速的解决这类问题。将时间用在更重要的事情上。