Eclipse与Git协同工作完全指南从基础配置到团队协作提升开发效率的实战技巧解决日常开发中的版本控制难题

Eclipse与Git协同工作完全指南从基础配置到团队协作提升开发效率的实战技巧解决日常开发中的版本控制难题

引言

在现代软件开发中,版本控制系统是不可或缺的工具,而Git无疑是当前最流行的分布式版本控制系统。Eclipse作为一款广泛使用的集成开发环境(IDE),通过与Git的紧密集成,为开发者提供了便捷的版本控制操作界面。本指南将详细介绍如何在Eclipse中配置和使用Git,从基础设置到高级团队协作技巧,帮助开发者充分利用这两个工具的强大功能,解决日常开发中的版本控制难题,提高开发效率。

基础配置

Eclipse中安装和配置Git插件

大多数现代Eclipse版本已经预装了EGit(Eclipse Git团队提供商),但如果你的Eclipse中没有安装,可以按照以下步骤进行安装:

打开Eclipse,点击菜单栏的”Help” > “Eclipse Marketplace…”

在搜索框中输入”EGit”,然后点击”Go”

找到”Eclipse Git Team Provider”并点击”Install”

按照安装向导完成安装,安装完成后需要重启Eclipse

安装完成后,需要验证Git插件是否正确安装:

点击菜单栏的”Window” > “Preferences”

在左侧导航树中展开”Team” > “Git”

如果能看到Git相关配置选项,说明插件已成功安装

Git基础概念回顾

在深入Eclipse与Git的集成之前,让我们快速回顾一些Git的基本概念:

仓库(Repository):Git用来存储项目所有文件和版本历史的地方。

提交(Commit):保存项目状态的快照,包含作者信息、时间戳和提交消息。

分支(Branch):指向提交的指针,允许并行开发。

主分支(Master/Main):默认的主要分支,通常用于存储稳定的代码。

远程仓库(Remote Repository):托管在远程服务器上的Git仓库,如GitHub、GitLab或Bitbucket。

克隆(Clone):从远程仓库复制到本地的过程。

拉取(Pull):从远程仓库获取并合并最新更改。

推送(Push):将本地提交发送到远程仓库。

在Eclipse中配置Git用户信息

在使用Git之前,需要配置用户信息,这些信息将用于标识你的提交。在Eclipse中配置Git用户信息的步骤如下:

点击菜单栏的”Window” > “Preferences”

在左侧导航树中展开”Team” > “Git” > “Configuration”

点击”Add Entry”按钮,添加以下配置:

键:user.name

值:你的姓名(例如:John Doe)

再次点击”Add Entry”按钮,添加以下配置:

键:user.email

值:你的电子邮件地址(例如:john.doe@example.com)

或者,你也可以通过Eclipse直接打开Git配置文件进行编辑:

在”Git Configuration”页面,点击”Open Repository”按钮

选择你的全局Git配置文件(通常位于用户主目录下的.gitconfig文件)

在编辑器中添加或修改以下内容:

[user]

name = John Doe

email = john.doe@example.com

连接远程Git仓库

在Eclipse中连接远程Git仓库的步骤如下:

点击菜单栏的”Window” > “Show View” > “Other…”

在对话框中展开”Git”并选择”Git Repositories”,然后点击”Open”

在”Git Repositories”视图中,点击”Clone a Git Repository”图标

在”Source Git Repository”页面,输入远程仓库的URI,例如:

HTTPS: https://github.com/username/repository.git

SSH: git@github.com:username/repository.git

如果使用HTTPS,需要输入用户名和密码;如果使用SSH,确保你已经配置了SSH密钥

在”Branch Selection”页面,选择要克隆的分支

在”Local Destination”页面,选择本地存储目录和初始分支,然后点击”Finish”

克隆完成后,仓库将显示在”Git Repositories”视图中,你可以开始使用它进行版本控制操作。

基本操作

在Eclipse中创建Git仓库

如果你有一个现有的项目,想要将其纳入Git版本控制,可以按照以下步骤操作:

在Project Explorer中右键点击项目,选择”Team” > “Share Project…”

在”Share Project”对话框中,选择”Git”并点击”Next”

选择”Use or create repository in parent folder of project”

如果项目目录中没有Git仓库,点击”Create Repository”按钮

点击”Finish”完成创建

创建完成后,项目文件将显示未跟踪的问号(?)标记,表示这些文件尚未被Git跟踪。

克隆现有Git仓库

如果你想要克隆一个现有的Git仓库到Eclipse中,可以按照以下步骤操作:

点击菜单栏的”File” > “Import…”

在”Import”对话框中,展开”Git”并选择”Projects from Git”,然后点击”Next”

选择”Clone URI”并点击”Next”

输入远程仓库的URI和认证信息(如果需要),然后点击”Next”

选择要克隆的分支,然后点击”Next”

选择本地存储目录,然后点击”Next”

选择导入项目的方式(通常选择”Import as general project”或”Import existing projects”),然后按照向导完成导入

提交更改

在Eclipse中提交Git更改的步骤如下:

修改项目文件后,在Project Explorer中右键点击项目或文件,选择”Team” > “Commit…”

在”Commit Changes”对话框中,左侧列出了已修改但未提交的文件

选择要提交的文件(默认全选)

在右侧的”Commit Message”区域输入提交信息,描述本次更改的内容

点击”Commit”按钮完成提交

如果你只想提交部分更改,可以使用”Stage”功能:

在”Commit Changes”对话框中,右键点击文件,选择”Stage”

或者,点击文件内容区域的行号左侧,选择性地暂存特定行的更改

暂存完成后,输入提交信息并点击”Commit”

查看历史记录

在Eclipse中查看Git历史记录的步骤如下:

在Project Explorer中右键点击项目或文件,选择”Team” > “Show in History”

在”Git History”视图中,你可以看到所有的提交记录,包括提交ID、作者、日期和提交信息

点击特定的提交,可以在下方查看该提交的详细更改内容

你也可以比较不同版本之间的差异:

在”Git History”视图中,选择两个提交(按住Ctrl键多选)

右键点击选择”Compare with each other”

在打开的编辑器中查看两个版本之间的差异

分支操作

在Eclipse中进行Git分支操作的步骤如下:

创建新分支

在”Git Repositories”视图中,展开你的仓库,右键点击”Branches” > “Local”

选择”Create Branch”

输入分支名称,选择基础分支(通常是master或main)

点击”Finish”完成创建

切换分支

在”Git Repositories”视图中,展开你的仓库,展开”Branches” > “Local”

双击要切换的分支,或者右键点击分支并选择”Checkout”

Eclipse会自动更新工作空间以反映所选分支的内容

合并分支

确保你当前在目标分支上(例如master或main)

右键点击项目,选择”Team” > “Merge…”

选择要合并的分支

点击”Merge”开始合并过程

如果出现冲突,需要解决冲突后再次提交

删除分支

在”Git Repositories”视图中,展开你的仓库,展开”Branches” > “Local”

右键点击要删除的分支,选择”Delete Branch”

确认删除操作

高级功能

冲突解决

在团队协作中,代码冲突是常见的问题。当多个人修改同一文件的同一部分时,就会发生冲突。在Eclipse中解决Git冲突的步骤如下:

当尝试合并或拉取更改时,如果发生冲突,Eclipse会显示冲突标记

在Project Explorer中,冲突的文件会显示特殊的冲突图标

右键点击冲突文件,选择”Team” > “Merge Tool”

在打开的合并工具中,你可以看到三个版本:

左侧:本地版本(你的更改)

中间:合并结果(需要编辑)

右侧:远程版本(他人的更改)

仔细比较冲突部分,决定保留哪些更改,编辑中间的合并结果

解决所有冲突后,保存文件

右键点击项目,选择”Team” > “Commit…“,提交解决冲突后的文件

你也可以使用Eclipse的快速修复功能:

双击打开冲突文件

在冲突标记处,Eclipse会显示快速修复建议

点击建议,选择”Accept Yours”(接受你的更改)或”Accept Theirs”(接受他人的更改)

或者手动编辑冲突部分,删除冲突标记(<<<<<<<, =======, =======)

保存文件并提交

标签管理

Git标签用于标记重要的提交点,如版本发布。在Eclipse中管理Git标签的步骤如下:

创建标签

在”Git History”视图中,找到要标记的提交

右键点击提交,选择”Create Tag…”

输入标签名称和可选的标签消息

选择标签类型:轻量标签(Lightweight)或注释标签(Annotated)

点击”Create Tag”完成创建

查看标签

在”Git Repositories”视图中,展开你的仓库,展开”Tags”

你可以看到所有的标签,按字母顺序排列

双击标签可以查看该标签指向的提交

推送标签到远程仓库

在”Git Repositories”视图中,展开你的仓库,展开”Tags”

右键点击要推送的标签,选择”Push Tag…”

选择远程仓库和推送选项

点击”Finish”完成推送

删除标签

在”Git Repositories”视图中,展开你的仓库,展开”Tags”

右键点击要删除的标签,选择”Delete Tag”

确认删除操作

Stash功能

Git的Stash功能允许你临时保存当前的工作进度,以便切换到其他任务。在Eclipse中使用Git Stash的步骤如下:

保存工作进度

右键点击项目,选择”Team” > “Stash Changes…”

输入stash的描述信息(可选)

点击”Stash”保存当前工作进度

查看Stash列表

在”Git Repositories”视图中,展开你的仓库

展开”Stashed Commits”节点,可以看到所有的stash记录

应用Stash

在”Git Repositories”视图中,展开你的仓库,展开”Stashed Commits”

右键点击要应用的stash,选择”Apply Stash”

或者选择”Pop Stash”(应用后删除stash记录)

删除Stash

在”Git Repositories”视图中,展开你的仓库,展开”Stashed Commits”

右键点击要删除的stash,选择”Delete Stash”

确认删除操作

与远程仓库同步

与远程仓库同步是团队协作中的关键操作。在Eclipse中与远程仓库同步的步骤如下:

拉取远程更改

右键点击项目,选择”Team” > “Pull…”

选择远程仓库和分支

选择合并策略(通常使用默认的”Merge”)

点击”Finish”开始拉取操作

推送本地更改

右键点击项目,选择”Team” > “Push to Upstream”

或者选择”Team” > “Remote” > “Push…”

选择要推送的分支和远程仓库

点击”Next”预览要推送的更改

点击”Finish”完成推送

获取远程更改(不合并)

右键点击项目,选择”Team” > “Fetch from Upstream”

或者选择”Team” > “Remote” > “Fetch…”

选择远程仓库

点击”Finish”获取远程更改(这不会合并到本地分支)

设置跟踪分支

跟踪分支是与远程分支关联的本地分支,可以简化拉取和推送操作。设置跟踪分支的步骤如下:

在”Git Repositories”视图中,展开你的仓库,展开”Branches” > “Remote Tracking”

找到要跟踪的远程分支

右键点击分支,选择”Create Branch”

输入本地分支名称,确保选中”Checkout new branch”选项

点击”Finish”创建并切换到新的跟踪分支

团队协作

分支策略

在团队协作中,合理的分支策略可以提高开发效率和代码质量。以下是几种常见的分支策略及其在Eclipse中的实现方法:

Git Flow

Git Flow是一种流行的分支模型,包含以下主要分支:

master/main:生产环境分支

develop:开发分支

feature/:功能分支

release/:发布分支

hotfix/:紧急修复分支

在Eclipse中实现Git Flow的步骤:

创建主分支和开发分支:

# 创建并切换到develop分支

git checkout -b develop master

在Eclipse中:

在”Git Repositories”视图中,右键点击”Branches” > “Local”

选择”Create Branch”

输入分支名称”develop”

选择”master”作为基础分支

点击”Finish”创建并切换到develop分支

创建功能分支:

# 从develop创建功能分支

git checkout -b feature/new-feature develop

在Eclipse中:

确保当前在develop分支上

右键点击项目,选择”Team” > “Switch To” > “New Branch”

输入分支名称”feature/new-feature”

点击”Finish”创建并切换到功能分支

完成功能后合并到develop:

# 切换到develop分支

git checkout develop

# 合并功能分支

git merge --no-ff feature/new-feature

# 删除功能分支

git branch -d feature/new-feature

在Eclipse中:

切换到develop分支

右键点击项目,选择”Team” > “Merge…”

选择”feature/new-feature”分支

确保选中”Create a merge commit”选项(相当于–no-ff)

点击”Merge”完成合并

在”Git Repositories”视图中,右键点击”feature/new-feature”分支,选择”Delete Branch”

GitHub Flow

GitHub Flow是一种简化的分支模型,主要包含以下分支:

master/main:生产环境分支

feature/:功能分支

在Eclipse中实现GitHub Flow的步骤:

创建功能分支:

# 从master创建功能分支

git checkout -b feature/new-feature master

在Eclipse中:

确保当前在master分支上

右键点击项目,选择”Team” > “Switch To” > “New Branch”

输入分支名称”feature/new-feature”

点击”Finish”创建并切换到功能分支

完成功能后合并到master:

# 切换到master分支

git checkout master

# 合并功能分支

git merge --no-ff feature/new-feature

# 删除功能分支

git branch -d feature/new-feature

在Eclipse中的操作与Git Flow类似,只是目标分支是master而不是develop。

代码审查

代码审查是提高代码质量和团队知识共享的重要环节。在Eclipse中结合Git进行代码审查的方法如下:

使用Pull Request/Merge Request

虽然Eclipse本身不直接提供Pull Request (PR)或Merge Request (MR)的创建功能,但可以通过以下方式进行代码审查:

在Eclipse中完成功能开发并推送到远程功能分支

在GitHub/GitLab等平台上创建PR/MR

团队成员可以在平台上进行代码审查

根据审查意见在Eclipse中修改代码

推送更改并再次审查

审查通过后,在平台上合并PR/MR

使用Eclipse的比较功能

在进行代码审查时,可以使用Eclipse的比较功能来查看更改:

在”Git History”视图中,选择要审查的提交

右键点击提交,选择”Compare with workspace”

或者选择两个提交进行比较

在打开的编辑器中查看详细的代码差异

使用Mylyn任务集成

Eclipse的Mylyn插件可以与任务跟踪系统(如Jira、Bugzilla等)集成,方便进行代码审查:

安装Mylyn插件(如果尚未安装)

配置Mylyn与你的任务跟踪系统连接

在Mylyn任务视图中打开相关任务

在任务上下文中进行代码更改

提交时引用任务ID,将代码更改与任务关联

持续集成

持续集成(CI)是现代软件开发的重要实践,可以自动化构建和测试流程。在Eclipse中配置与Git集成的CI系统的方法如下:

配置CI服务器

在CI服务器(如Jenkins、GitLab CI、GitHub Actions等)上创建项目

配置CI服务器监听Git仓库的更改

设置构建触发器(如推送代码时自动构建)

配置构建脚本和测试命令

在Eclipse中测试CI配置

在Eclipse中修改代码

提交并推送到远程仓库

检查CI服务器的构建状态

如果构建失败,根据错误信息在Eclipse中修复问题

重新提交并推送,直到构建成功

使用Eclipse的构建自动化工具

Eclipse支持多种构建自动化工具,如Maven和Gradle,这些工具可以与CI系统无缝集成:

在项目中使用Maven或Gradle构建系统

在Eclipse中配置构建工具:

对于Maven:右键点击项目,选择”Configure” > “Convert to Maven Project”

对于Gradle:右键点击项目,选择”Configure” > “Add Gradle Nature”

确保构建脚本(pom.xml或build.gradle)配置正确

在CI服务器中使用相同的构建命令,确保环境一致性

解决常见团队协作问题

在团队协作中,可能会遇到各种问题。以下是一些常见问题及其解决方案:

问题1:合并冲突频繁发生

解决方案:

采用合适的分支策略,减少并行开发同一文件的情况

定期从主分支拉取最新更改,减少分歧

在Eclipse中使用”Pull”操作前,先使用”Fetch”预览更改

使用Eclipse的”Compare with HEAD”功能,在提交前检查自己的更改与最新版本的差异

问题2:提交历史混乱

解决方案:

制定提交信息规范,确保清晰描述更改内容

使用交互式rebase整理提交历史:

git rebase -i HEAD~n # n是要整理的提交数量

在Eclipse中:

在”Git History”视图中,选择要整理的第一个提交

右键点击,选择”Rebase Interactive”

在打开的编辑器中,可以重新排序、合并、编辑或删除提交

保存并关闭编辑器,完成rebase操作

定期合并主分支的更改到功能分支,保持提交历史线性

问题3:大型二进制文件管理困难

解决方案:

使用Git LFS (Large File Storage)管理大型二进制文件:

# 安装Git LFS

git lfs install

# 跟踪大型文件

git lfs track "*.psd"

git lfs track "*.zip"

# 提交.gitattributes文件

git add .gitattributes

git commit -m "Track PSD and ZIP files with Git LFS"

在Eclipse中:

安装Eclipse Git LFS插件(如果尚未安装)

在项目中创建或编辑.gitattributes文件,添加要跟踪的文件类型

提交.gitattributes文件

正常添加和提交大型文件,Git LFS会自动处理

考虑使用外部存储系统(如Nexus、Artifactory等)管理大型二进制文件

实战技巧与最佳实践

提高工作效率的快捷键

在Eclipse中使用Git时,掌握一些快捷键可以大大提高工作效率:

提交更改:Ctrl + #(Windows/Linux)或Cmd + #(Mac)

拉取远程更改:Ctrl + Alt + P(Windows/Linux)或Cmd + Option + P(Mac)

推送到远程仓库:Ctrl + Alt + Shift + U(Windows/Linux)或Cmd + Option + Shift + U(Mac)

查看历史记录:Ctrl + Alt + H(Windows/Linux)或Cmd + Option + H(Mac)

切换分支:Ctrl + Alt + Shift + B(Windows/Linux)或Cmd + Option + Shift + B(Mac)

比较文件:选择文件后按Ctrl + D(Windows/Linux)或Cmd + D(Mac)

快速打开Git Repositories视图:Ctrl + 3,然后输入”Git Repositories”并按Enter

自定义Eclipse Git设置

通过自定义Eclipse的Git设置,可以更好地适应个人工作流程:

设置默认提交消息模板:

点击菜单栏的”Window” > “Preferences”

导航到”Team” > “Git” > “Committing”

在”Commit Message Template”区域输入默认模板

配置文件关联:

点击菜单栏的”Window” > “Preferences”

导航到”General” > “Editors” > “File Associations”

添加文件类型和关联的编辑器

设置Git差异工具:

点击菜单栏的”Window” > “Preferences”

导航到”Team” > “Git” > “Diff”

选择差异工具和合并工具

配置Git操作确认:

点击菜单栏的”Window” > “Preferences”

导航到”Team” > “Git” > “Confirmations”

根据需要选择哪些操作需要确认

使用Git钩子自动化工作流程

Git钩子可以在特定事件(如提交、推送等)发生时自动执行脚本,帮助自动化工作流程:

创建提交前检查钩子:

在项目的.git/hooks目录下创建pre-commit文件:

#!/bin/sh

# 运行代码风格检查

if ! mvn checkstyle:check; then

echo "代码风格检查失败,请修复后再次提交"

exit 1

fi

# 运行单元测试

if ! mvn test; then

echo "单元测试失败,请修复后再次提交"

exit 1

fi

exit 0

创建提交消息检查钩子:

在项目的.git/hooks目录下创建commit-msg文件:

#!/bin/sh

# 检查提交消息格式

if ! grep -qE "^(feat|fix|docs|style|refactor|test|chore)(\(.+\))?: .+" "$1"; then

echo "提交消息格式不正确,请使用以下格式:"

echo "(): "

echo "其中type可以是:feat, fix, docs, style, refactor, test, chore"

exit 1

fi

exit 0

设置钩子文件权限:

chmod +x .git/hooks/pre-commit

chmod +x .git/hooks/commit-msg

常见问题解决方案

问题1:Eclipse中Git操作变慢

解决方案:

禁用不必要的Git装饰:

点击菜单栏的”Window” > “Preferences”

导航到”Team” > “Git” > “Label Decorations”

取消选择不需要的装饰选项

减少Git历史记录显示数量:

点击菜单栏的”Window” > “Preferences”

导航到”Team” > “Git” > “History”

减少”Maximum number of commits to show”的值

优化仓库性能:

定期运行git gc命令清理和优化仓库

在Eclipse中,右键点击项目,选择”Team” > “Advanced” > “Garbage Collect”

问题2:Eclipse无法识别Git仓库

解决方案:

检查项目是否正确共享到Git:

右键点击项目,选择”Team” > “Share Project…”

确保选择了”Git”并正确配置了仓库位置

检查.git目录是否存在:

在文件系统导航器中,检查项目目录下是否有.git目录

如果没有,可能需要重新初始化仓库

重新加载项目:

右键点击项目,选择”Refresh”

或者关闭项目后重新打开

问题3:无法推送到远程仓库

解决方案:

检查远程仓库配置:

在”Git Repositories”视图中,展开你的仓库,展开”Remotes”

确保远程仓库URI正确

如果不正确,右键点击远程仓库,选择”Configure Push…“或”Configure Fetch…”

检查认证信息:

如果使用HTTPS,确保用户名和密码正确

如果使用SSH,确保SSH密钥已正确配置并添加到远程仓库

检查分支跟踪设置:

在”Git Repositories”视图中,展开你的仓库,展开”Branches” > “Local”

右键点击分支,选择”Configure Branch…”

确保设置了正确的上游分支

工作流程优化

1. 使用Eclipse任务驱动开发

结合Eclipse的任务管理系统和Git,可以实现任务驱动的开发流程:

在Mylyn任务视图中创建或选择任务

激活任务,Eclipse会自动过滤相关资源

创建功能分支:

git checkout -b feature/task-123-description main

在任务上下文中进行开发

完成开发后,提交更改并引用任务ID:

git commit -m "Implement feature for task-123: Description of changes"

推送到远程仓库并创建PR/MR

在PR/MR描述中引用任务ID,将代码更改与任务关联

2. 使用Git工作流插件

Eclipse支持多种Git工作流插件,如EGit Flow、Gitflow等,可以简化复杂的工作流程:

安装Git工作流插件:

点击菜单栏的”Help” > “Eclipse Marketplace…”

搜索并安装适合的Git工作流插件

配置工作流:

点击菜单栏的”Window” > “Preferences”

导航到”Team” > “Git” > “Workflow”

选择并配置适合的工作流模型

使用工作流操作:

右键点击项目,选择”Team” > “Workflow”

选择工作流操作,如”Start Feature”、”Finish Feature”等

3. 集成外部工具

将Eclipse与外部工具集成,可以进一步优化工作流程:

集成Git GUI工具:

点击菜单栏的”Window” > “Preferences”

导航到”Team” > “Git” > “Configuration”

添加外部工具配置,如:

[merge]

tool = sourcetree

[mergetool "sourcetree"]

cmd = /Applications/SourceTree.app/Contents/Resources/opendiff-w.sh \"$LOCAL\" \"$REMOTE\" -ancestor \"$BASE\" -merge \"$MERGED\"

trustExitCode = true

集成代码审查工具:

安装适合的代码审查插件,如”Code Review”插件

配置与代码审查系统的连接

在Eclipse中直接进行代码审查

集成CI/CD工具:

安装适合的CI/CD插件,如”Jenkins Connector”插件

配置与CI/CD系统的连接

在Eclipse中直接触发构建和查看构建状态

总结

Eclipse与Git的协同工作为开发者提供了强大的版本控制和团队协作能力。通过本指南,我们详细介绍了从基础配置到高级团队协作的各个方面,包括:

基础配置:安装EGit插件、配置用户信息、连接远程仓库

基本操作:创建仓库、克隆仓库、提交更改、查看历史、分支操作

高级功能:冲突解决、标签管理、Stash功能、与远程仓库同步

团队协作:分支策略、代码审查、持续集成、解决常见团队协作问题

实战技巧:快捷键使用、自定义设置、Git钩子、问题解决方案、工作流程优化

通过掌握这些知识和技巧,开发者可以充分利用Eclipse和Git的强大功能,解决日常开发中的版本控制难题,提高开发效率和团队协作能力。无论是个人开发者还是大型开发团队,都可以从Eclipse与Git的协同工作中受益,实现更高效、更可靠的软件开发流程。

在实际应用中,建议根据团队的具体需求和项目特点,选择适合的分支策略和工作流程,并不断优化和调整,以达到最佳的开发效率和代码质量。同时,保持学习和探索新的工具和技术,也是提高开发能力的重要途径。

相关手记

beat365英超欧冠比分 山芋的生长周期及采摘时间(从种植到收获)
365bet取款要多久 男人为何总是爱大胸?这个秘密你知道吗!
365彩票最新版app下载 jsp中如何使用session?

jsp中如何使用session?

06-30 👁️ 3189
beat365英超欧冠比分 汽车导航怎样放U盘里的歌曲优质
365bet取款要多久 瑞士对波胆足球,从历史到未来的深度解析瑞士对波胆足球
365bet取款要多久 拓印是什麼,到底怎麼拓印,什麼是拓印