sourcetree的使用(克隆、提交、推送、获取、拉取、分支创建与合并、解决冲突、撤销回滚、回退版本)

目录

一、克隆

​二、提交和推送

三、获取和拉取

四、分支创建与合并

五、解决冲突

六、撤销回滚

七、回退版本


一、克隆

填入远程仓库地址,目标路径(本地存放路径),点击克隆。

二、提交和推送

git是分布式版本控制工具,存在着本地仓库和远程仓库,所以我们需要在本地工作副本中编辑,然后提交到本地仓库,最后推送到远程仓库。

提交到本地仓库,再推送到远程仓库

推送完成后,可以看到最新的版本里显示了master 和 origin/master,这表明本地master分支和远程master分支是同步的,在一个节点上。

三、获取和拉取

获取和拉取。获取是从远程仓库获取信息并同步至本地仓库,拉取是从远程仓库获取信息并同步至本地仓库,并且自动执行合并(merge)操作,即 pull=fetch+merge。

获取后的结果

把远端master分支更新的提交同步到本地仓库

拉取后的结果

在实际工作中,我们只需要使用拉取,来更新远端仓库分支到本地分支就行

四、分支创建与合并

在工作中,我们新增一个功能需新增一个分支,这是为了保证原有的功能能正常使用,新增的功能不会影响原有功能的分支,等新增的功能测试通过后,我们只需把新增的分支合并到master分支上,然后上线。

新增一个develop分支

点击创建分支,可以看到多了一个develop分支,但是这个分支只存在于本地仓库。可以看到最新的日志记录节点上只有master , origin/master,develop,所以这个新分支是没有推送到远程仓库的。

然后点击推送到远端分支

将develop分支合并到master分支,先切换到master分支,将develop分支合并到master分支,最后推送到远程master分支

五、解决冲突

产生冲突的两种原因:

  • 不同分支下的合并:比如我们本地修改了文件1时,并推送到远端develop分支,接着我们将develop分支推送到test分支,如果test分支的文件1也有修改的话,那么就会产生冲突。
  • 同一个分支的拉取或推送:如果我们对文件1作出了修改,此时我们进行拉取或推送,如果远端文件1也有修改,那么本地和远端的文件不一致,那么就会产生冲突。

拉取时出现冲突

我们可以打开vscode解决冲突

合并冲突后提交并推送

六、撤销回滚

有时候我们提交了代码,但后悔了,需要回滚,那么我们可以使用撤销回滚操作。

注意:撤销回滚只能撤销回滚最近的一次提交,并不能回滚到历史某个提交

可以看到提交历史记录多了一个Revert 反向提交

例子:比如我们在master中回滚一次提交,回滚的提交里有func1功能,下次我们在develop分支中增加func4功能,这时develop分支是有func1功能的,再次将develop分支合并到master分支,这是master是不会自动把func1功能再次合并,那么我们这是就需要将master分支那次的回滚提交找出来,点击回滚提交,重新添加func1到master分支上。

master分支回滚了func1的功能代码

develop的func1功能代码还是存在,这时添加了func4功能代码,并合并到master分支

这时master只会合并func4的代码,之前回滚的func1代码并不会再次合并

解决:

找到之前回滚func1功能的记录

然后点击回滚提交,就可以了

七、回退版本

撤销回滚只能撤销回滚最新的提交记录,并不能回滚到某个历史版本。注意:回退指的是内容的回退,而不是提交记录的回退

如果我们想回退到这个提交

右键重置当前分支到此次提交, 使用模式选择 强行合并--丢弃所有改动过的工作副本,点击确定

对比本地仓库和远程仓库,红圈节点上面的两个提交

再次右键点击最新的提交历史记录,重置当前分支到此次提交,选择软合并

查看文件状态,可以看到修改的文件已经删除了回退版本之后提交的代码

然后点提交推送

注意:回退是不会删除回退版本之后的提交记录的,只是回退了内容。

### Sourcetree 使用教程 Sourcetree 是一款免费的 Git 和 Mercurial 客户端,支持 macOS 和 Windows 平台[^1]。它提供了图形化界面来简化复杂的命令行操作,使开发者可以更高效地进行版本控制。 #### 1. 下载安装 访问 Sourcetree 的官方网站下载适合您系统的客户端并完成安装过程。安装完成后启动程序会提示登录 Atlassian 账号或者创建新账号以便同步云端仓库数据。 #### 2. 配置基础设置 首次打开应用时需配置基本环境变量如用户名邮箱等信息确保提交记录准确无误[^2]: ```bash git config --global user.name "Your Name" git config --global user.email "your_email@example.com" ``` #### 3. 创建/克隆项目库 - **新建本地仓库**: 可通过菜单栏 `Repository -> Create Repository` 来初始化一个新的 git repository。 - **远程仓库(Clone)**: 输入目标 URL 地址即可从服务器上获取已有工程副本到本地磁盘位置指定文件夹下存储。 #### 4. 日常操作指南 ##### a. 提交更改 (Commit Changes) 当修改某些源码之后想要保存这些改动至历史记录当中,则需要执行 commit 动作。选中待处理变更列表里的条目右键点击选择 stage all changes 将其标记为已暂存状态;接着填写描述性的 message 后按 Commit 按钮即成功录入当前时刻的工作成果。 ##### b. 推送更新(Push Updates) 如果希望把最近一次或多次 commits 发布出去让团队其他成员可见的话就需要做 push 操作了。只需简单双击 Push 图标按照向导指示一步步走完流程就完成了推送任务。 ##### c. 获取最新代码(Fetch/Pull Latest Code) 为了保持自己分支始终处于最新状况应该经常性 fetch/pull 别人的贡献回来合并进来形成统一的整体解决方案。Fetch 命令只是单纯下载远端变动而不会自动整合进工作区所以一般情况下建议采用 Pull 方法因为它等于 Fetch 加 Merge 两步合一更加便捷实用。 ##### d. 解决冲突(Merge Conflicts) 偶尔会出现多人编辑同一份文档造成分歧现象此时就必须手动介入调整直至消除矛盾为止再继续后续步骤比如重新 commit & push 上去共享给所有人查看学习借鉴。 #### 5. 其他高级特性概览 除了上述提到的基础功能之外 SourceTree 还具备许多强大的附加选项可供探索挖掘例如 cherry-pick、rebase、stash 等等功能模块可以帮助用户灵活应对各种复杂场景需求提升工作效率减少重复劳动时间成本支出等问题发生几率降低风险系数提高整体质量水平达到事半功倍的效果。 ```python # 示例 Python 脚本展示如何自动化部分任务 import subprocess def run_git_command(command): result = subprocess.run(['git'] + command.split(), stdout=subprocess.PIPE, stderr=subprocess.PIPE) return result.stdout.decode('utf-8'), result.stderr.decode('utf-8') output, error = run_git_command("status") print(output) if error: print(f"Error occurred: {error}") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值