一、序言
今天聊聊 Git。
二、开发的问题
- 在开发项目时,我们的代码都是直接放在本地的机器上的。如果本地机器出现了问题,怎么办?
- 在企业中,开发项目都是团队协作,一个团队共同维护一个项目该如何处理?
- 团队共同维护一个项目,大概率会发生冲突(例如:A 与 B 都改了同一行代码)该如何解决?
- 项目是不断演进的,但是新版本有问题我们需要回溯到某个时间节点的某个版本呢?
三、什么是版本控制
- 版本追踪:记录文件的每一次修改,包括修改内容、修改者和修改时间等信息。
- 版本恢复:允许开发者在需要时回溯到历史版本,恢复特定时间点的文件状态。
- 分支管理:支持创建分支,使得开发者可以并行开发不同的功能或修复不同的 BUG,而不会影响主干代码。
- 代码合并:允许将不同分支或不同版本的代码合并到一起,确保代码的一致性和完整性。
- 冲突解决:当多个开发者同时修改了同一个文件,版本控制系统可以帮助解决代码冲突,确保修改的有效合并。
- 团队协作:提供多用户协作的支持,使得团队成员可以共享和管理代码的变更。
常见的版本控制系统包括:
- Git:目前最流行的分布式版本控制系统,用于跟踪文件的变化并协作开发项目。
- Subversion(SVN):集中式版本控制系统,类似于 Git,但与 Git 不同的是它使用集中式的存储库来管理文件版本。
- Mercurial:另一个分布式版本控制系统,与 Git 类似,但使用起来更简单。
- Perforce:用于大型项目和团队的商业版本控制系统,具有高性能和可定制性。
- Team Foundation Version Control(TFVC):Microsoft 开发的版本控制系统,主要用于 Visual Studio Team Services(VSTS)和 Team Foundation Server(TFS)。
它们在实现版本控制的基本功能上有所不同,但都能满足开发者对版本管理的需求。版本控制系统在软件开发过程中扮演着重要的角色,有助于提高团队的协作效率、保证代码的质量和可维护性。
四、什么是 Git
Git 是一个分布式版本控制系统,它是由 Linux 之父 Linus Torvalds 开发的,用于管理软件开发过程中的源代码版本。它的主要功能包括跟踪文件的变化、记录文件的历史版本、协作开发、代码审查等。Git 的设计目标是速度、简单性、非线性开发(允许同时进行多个分支的开发)和完全分布式。
Git 是一种非常强大、灵活且广泛应用的版本控制系统,对于任何需要管理代码变更的项目都是非常有用的工具。Git 允许开发者在一个项目中进行版本控制。它可以帮助开发团队在多人协作开发时更好地管理代码,并且可以在不同的开发环境之间轻松地共享和同步代码。Git 也是开源的,因此任何人都可以免费使用它,并且它拥有庞大的社区支持,有许多优秀的工具和扩展可以与之配合使用。
五、Git 工作流程

- 开发人员第一次使用
git clone命令从远程库克隆项目到本地库。如果本地已经存在该项目则使用git pull命令更新本地的项目 - 开发人员在本机的工作区打开本地库中的项目进行开发
- 工作区的项目有变更之后,使用
git add命令将工作区的变更放入暂存区 - 暂存区有新内容之后,使用
git commit命令将暂存区内容提交到本地库 - 此时,本地项目的最新版本已经保存到了本地库,但是远程库还是旧版本
- 使用
git push命令将本地库的最新变更提交到远程库
每一个开发人员都可以通过上述的流程拉取项目,开发项目,推送最新的代码,从而实现了团队开发项目。
六、Git 常用命令
- 初始化一个新的 Git 本地仓库
git init
讯享网 - 从远程仓库克隆一个仓库到本地
讯享网
git clone [url] - 将文件添加到暂存区
git add [file] - 将所有修改过的文件添加到暂存区
讯享网
git add . - 将暂存区的文件提交到本地仓库,并附上提交信息
git commit -m "[message]" - 显示工作目录的状态,显示已暂存和未暂存的改动
讯享网
git status - 显示工作目录中当前文件和暂存区域的差异
git diff - 显示已暂存的内容与上次提交之间的差异
讯享网
git diff --cached - 显示提交日志

git log - 列出本地分支
讯享网
git branch - 创建一个新的分支
git branch [branch_name] - 切换到指定分支
讯享网
git checkout [branch_name] - 将指定分支合并到当前分支
git merge [branch_name] - 拉取远程仓库的更新
讯享网
git pull - 将本地提交推送到远程仓库
git push - 查看远程仓库信息
讯享网
git remote -v - 添加一个新的远程仓库
git remote add [name] [url] - 移除一个远程仓库
讯享网
git remote remove [name] - 从暂存区中移除指定文件,但保留在工作区中的修改
git reset [file] - 重置暂存区和工作目录,与最新提交保持一致
讯享网
git reset --hard - 将当前的修改暂存起来,并将工作区恢复到上一次提交时的状态
git stash - 列出所有标签
讯享网
git tag - 创建一个新的标签
git tag [tag_name] - 切换到指定标签
讯享网
git checkout [tag_name] - 删除文件,并将这次删除放入暂存区
git rm [file]


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/16791.html