网站首页 > 技术文章 正文
Git是一个免费的、开源的分布式版本控制系统,旨在以快速高效的方式处理从小型到大型的所有项目。
Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。
大部分互联网公司都使用Git或SVN作为代码版本控制。不管你只会Git或只会SVN版本控制的业务场景就那么多所以从Git切换到SVN或从SVN切换到Git业务场景不变只是两个软件的操作命令不同而已。只需要你了解两个软件的设计区别软件命令之间切换是非常容易上手的。
1、Git与SVN区别
Git | SVN | |
架构 | 分布式 | 非分布式 |
存储 | 元数据 | 文件 |
分支 | 资源库 | 目录 |
版本号 | 无全局版本号 | 有全局版本号 |
内容完整性 | 高(SHA-1 哈希算法) | 低 |
2、Clone代码
git clone https://github.com/witer666/python-httplib.git
3、创建分支
#创建分支
cd python-httplib
git checkout -b python-httplib-readme
#查看分支
git branch
执行结果:
main #主分支
* python-httplib-readme #当前分支
4、提交代码
git add readme.txt
git commit -m "submit readme.txt desc" readme.txt
git push --set-upstream origin python-httplib-readme
#输入github用户我
#输入github access token //点击有上角个人头像-》Setting-》Developer settings-》Personal access tokens-》Generate new token
执行结果:
Enumerating objects: 4, done.
Counting objects: 100% (4/4), done.
Delta compression using up to 8 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 328 bytes | 328.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
remote:
remote: Create a pull request for 'python-httplib-readme' on GitHub by visiting:
remote: https://github.com/witer666/python-httplib/pull/new/python-httplib-readme
remote:
To https://github.com/witer666/python-httplib.git
* [new branch] python-httplib-readme -> python-httplib-readme
Branch 'python-httplib-readme' set up to track remote branch 'python-httplib-readme' from 'origin'.
5、切换分支
#切换到主干
git checkout main
#切换到分支
git checkout python-httplib-readme
6、查看修改的文件
#查看修改的所有文件
git diff
#查看修改的指定文件
git diff readme.txt
执行结果:
diff --git a/readme.txt b/readme.txt
index 2d7e030..459bab3 100644
--- a/readme.txt
+++ b/readme.txt
@@ -1 +1,2 @@
-#guzzle http lib
+# readme desc
+# guzzle http lib
7、删除文件
git rm readme.txt
git commit -m "submit rm readme.txt" readme.txt
git push --set-upstream origin python-httplib-readme
8、提交修改的文件
git commit -m "update readme.txt add desc" readme.txt
git push --set-upstream origin python-httplib-readme //不用再输入github账号和密码,github已记入账号和密码
执行结果:
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 8 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 349 bytes | 349.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
To https://github.com/witer666/python-httplib.git
06047f9..77f7e93 python-httplib-readme -> python-httplib-readme
Branch 'python-httplib-readme' set up to track remote branch 'python-httplib-readme' from 'origin'.
9、回滚代码
#查看提交版本日志
git log
执行结果:
commit 77f7e93caad076b84622a172129edbc5ed3392a3 (HEAD -> python-httplib-readme, origin/python-httplib-readme)
Author: chenhongwei01 <chenhongwei01@baidu.com>
Date: Tue Apr 5 11:38:52 2022 +0800
update readme.txt add desc
commit 06047f91f5e0214a0e2c90dca6cc4967ef03ce60
Author: chenhongwei01 <chenhongwei01@baidu.com>
Date: Tue Apr 5 10:59:00 2022 +0800
submit readme.txt
commit 8956dcc291d447bd4464290b0e0ef8f86f227610 (origin/main, origin/HEAD, main)
Author: witer666 <linux_chen@126.com>
Date: Tue Mar 15 00:13:43 2022 +0800
submit httplib httpsoup code
#回滚代码
git reset --hard 06047f91f5e0214a0e2c90dca6cc4967ef03ce60
git push --set-upstream origin python-httplib-readme -f #加-f强制push代码可以不加-f看是否有报错信息
10、冲突解决(分支合并主干)
#分支合并主干
a. 拉取主干代码 git clone
b. 切换分支代码 git checkout
c. 合并主干代码 git merge origin main
d. 解决代码冲突 vim
e. 添加代码 git add
e. 提交代码 git commit -m ""
f. push代码 git push origin python-httplib-readme
#主干合并分支
主干合并分支与分支合并主干方式一样,只是主干合并分支应该不存在代码冲突问题。
如果主干合并分支有代码冲突问题建议再做一次分支合并主干操作。
11、冲突注意事项
代码冲突最担心的问题就是自己把别人的代码覆盖掉了。个人经历提供如下办法解决。
- 多问多沟通(多与代码冲突修改者沟通提问)。
- 使用Beyond Compare文件对比工具本地电脑对比冲突解决后的代码文件。这个工具在文件对比上看的非常详细清楚。有些代码在vim看下不明白时我会用这个工具本地看。
- 在线文件对比工具:https://json.im/diff/。简单的代码段之间对比。
- 代码自测:接口测试、方法单测、段落测试、单行测试都行。评估好冲突风险。
感谢大家的评论、点赞、分享、关注。。。
- 上一篇: 鹅厂是如何使用 Git 的?(鹅厂怎么规划?)
- 下一篇: 超级详细的Git使用教程(git怎么用?)
猜你喜欢
- 2024-10-27 git 入门教程之紧急修复(git checkout . 恢复)
- 2024-10-27 项目版本管理的最佳实践:飞流Flow篇
- 2024-10-27 DevOps(4)之分支模型(ps4如何构建画布)
- 2024-10-27 Git 在团队中的最佳实践——如何正确使用Git Flow
- 2024-10-27 鹅厂程序员干货分享 | 四种工作流,教你如何使用 GitHub
- 2024-10-27 Linux下git和github搭建使用教程(linux搭建git仓库)
- 2024-10-27 git这个小技巧非常实用,值得每个程序员学习
- 2024-10-27 Git实战002:Git快速入门使用详解(git简单教程)
- 2024-10-27 git 多人在同一分支上迭代开发时,如何保证分支提交历史保持线性
- 2024-10-27 Git基础知识(七)--分支开发工作流
- 11-26Win7\8\10下一条cmd命令可查得笔记本电脑连接过的Wifi密码
- 11-26一文搞懂MySQL行锁、表锁、间隙锁详解
- 11-26电脑的wifi密码忘记了?一招教你如何找回密码,简单明了,快收藏
- 11-26代码解决忘记密码问题 教你用CMD命令查看所有连接过的WIFI密码
- 11-26CMD命令提示符能干嘛?这些功能你都知道吗?
- 11-26性能测试之慢sql分析
- 11-26论渗透信息收集的重要性
- 11-26如何查看电脑连接过的所有WiFi密码
- 最近发表
- 标签列表
-
- cmd/c (57)
- c++中::是什么意思 (57)
- sqlset (59)
- ps可以打开pdf格式吗 (58)
- phprequire_once (61)
- localstorage.removeitem (74)
- routermode (59)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- log.warn (60)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- resttemplateokhttp (59)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- reader.onload (61)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- java是值传递还是引用传递 (58)
- 无效的列索引 (74)