写在前面:本博客仅作记录学习之用,部分图片来自网络,如需引用请注明出处,同时如有侵犯您的权益,请联系删除!
文章目录
- 前言
- 下载及安装Git
- Git的使用
- 设置用户签名
- 设置用户安全目录
- Git基本操作
- Git实操操作
- Pycharm与Git、Gitee
- Pycharm配置Git
- Pycharm配置Gitee
- Pycharm之Git基本操作
- 常见问题
- 无法创建分支
- Github push 失败
- 总结
- 致谢
- 参考
前言
在软件开发中,版本控制是一个不可或缺的工具。随着项目的增长和团队的扩大,管理源代码的变更、协作和跟踪变得愈发重要。Git正是为了满足这些需求而诞生的。
以下是Git的特点:
- 分布式版本控制:
分布式设计,使得每个开发者都能拥有完整的代码库副本以便开发者能够在没有网络连接的情况下进行工作,提高了开发的灵活性和效率。
- 强大的分支与合并:
分支管理功能,开发者可以创建新分支进行新功能开发或错误修复,有助于保持代码库的整洁和有序。通过分支和合并,团队可以并行工作,提高开发速度,同时保持代码质量。
- 高效的提交管理:
Git将每次提交视为一个完整的代码库快照,使得Git能够高效地处理大型项目的版本管理,即使面对数百万个文件的变更,也能保持出色的性能。开发者可以轻松查看历史提交记录,了解项目的演变过程,并快速回滚到之前的版本。
- 与代码托管平台无缝集成:
Git与Gitee、GitHub等代码托管平台紧密结合,为开发者提供了便捷的代码托管、分享和协作体验。开发者可以浏览和搜索开源项目,参与开源贡献,与全球开发者社区进行交流与合作。
- 易于学习和使用:
Git提供了直观且强大的命令行界面,同时也支持各种图形化工具,使得不同水平的开发者都能轻松上手。丰富的文档和社区资源为学习者提供了良好的支持,帮助开发者快速掌握Git的使用技巧。
综上所述,Git以其分布式设计、强大的分支与合并功能、高效的提交管理、与代码托管平台的无缝集成以及易于学习和使用的特点,成为了现代软件开发中不可或缺的版本控制工具。
下载及安装Git
Git的下载及安装过程因操作系统而异。以下是针对不同操作系统的Git下载及安装步骤:
对于Windows系统:
- 打开Git官网
- 在Git下载地址中找到Git的最新版本和下载链接,选择适合操作系统的下载链接。
- 下载完成后,运行安装程序。根据提示,选择合适的安装选项和安装路径。
- 安装完成后,在最近添加中可看到Git。
对于Mac系统:
- 打开Mac App Store或访问Git官网。
- 在官网首页或App Store中找到Git的Mac版本并下载安装。
- 安装完成后,打开终端(Terminal)即可使用Git。
对于Linux系统:
- 通过以下命令来安装Git:
sudo apt-get install git
。 - 安装完成后,可以通过输入命令
git --version
来验证Git是否成功安装。 - 另外,除了直接下载安装包进行安装,Mac用户还可以利用brew工具包管理器进行。
Git的使用
设置用户签名
设置Git用户签名是一个必要的步骤,用于标识提交代码时的身份。以下是设置Git用户签名的步骤:
- 设置全局的用户签名:
git config --global user.name NAME #设置用户名git congig --global user.mail NAME@git.com #设置用户邮箱
其中--global
适用于全部仓库,若只针对单一仓库可去掉--global
或者替换为--local
。
设置完成后,Git会使用你提供的用户名和邮箱地址来标识你的提交。这些信息会保存在Git配置文件中,对于全局配置,通常保存在用户主目录下的 .gitconfig 文件中;对于单个仓库配置,则保存在仓库目录下的 .git/config 文件中。
C:/Users/用户名/.gitconfig
此外,虽然Git不会验证你设置的邮箱地址是否真实存在,但是建议使用一个有效的邮箱地址,以便在需要时接收来自Git的通知或与其他开发者进行联系。
设置用户安全目录
从Git 2.30开始,Git引入了一个新的安全特性,即safe.directory
。为了防止某些Git操作在不受信任的路径上执行,从而避免潜在的安全风险。特别是使用Git进行克隆、检出或执行其他涉及文件系统的操作时,Git会检查这些操作是否发生在已知的安全目录中。如果在不属于安全目录的位置执行这些操作,Git可能会拒绝执行,或者给出警告信息,提示可能面临安全风险。
- 以下是设置Git用户安全目录的代码:
git config --global --add safe.directory file_path #向全局配置中添加一个安全目录git config --local --add safe.directory file_path #向局部配置中添加一个安全目录
需要注意的是,safe.directory
是全局设置的,所以添加的目录对所有Git仓库都有效。如果你只想为特定的仓库添加安全的目录,可以使用--local
选项。
Git基本操作
Git的基本操作涵盖了版本控制的各个方面,从初始化仓库到提交更改,再到分支和合并等操作。
以下是Git的一些基本操作和指令:
- 初始化本地仓库:
git init
:在当前目录下初始化一个新的Git仓库,创建一个名为.git的子目录,用于存储版本控制所需的所有信息。
- 添加文件到暂存区:
git add filename
:将工作区中的文件添加到暂存区。
git add .
:则会添加当前目录下的所有文件。
- 提交暂存区的更改到本地仓库:
git commit -m "commit message"
:将暂存区的更改提交到本地仓库。
- 查看仓库的当前状态:
git status
:查看当前工作区和暂存区的状态,包括哪些文件已经被修改、哪些文件还未添加到暂存区等。
- 查看提交历史记录:
git log
:查看仓库的提交历史记录。
git reflog
:查看本地仓库的所有操作记录。
- 版本回退:
git reset --hard [commit]
:将HEAD指针回退到之前的某个提交。意味着版本更迭的底层实现是依赖于指针实现的。
- 分支操作:
git branch
:查看当前仓库的所有分支。
git branch new_branch
:创建新的分支。
git checkout branch_name
:切换到指定的分支。
git merge branch_name
:将指定分支合并到当前分支。
git branch -d branch_name
:删除指定的分支。
- 远程仓库操作:
git clone url
:命令克隆远程仓库到本地。
git remote -v
:查看远程仓库的信息。
git push origin branch_name
:将本地分支推送到远程仓库。
git pull origin branch_name
:从远程仓库拉取指定分支的更新。
以上只是Git的一些基本操作,实际上Git的功能远不止于此。通过学习和实践,你可以掌握更多高级的Git操作,如标签管理、冲突解决等,以更好地管理代码和项目。
Git实操操作
- 历史记录查看:
git reflog
与git log
:
- 版本切换:
git reset --hard 版本号
,版本号为git reflog
输出最前面的橙色一串号码。
再次使用git reflog
可以发现HEAD
指针指向了对应的版本。并记录在.git
中HEAD
文件中。
- 版本控制:依赖于head指针的移动。此处以master和qxd_edit分支为例。
git branch -v
的结果是存在两个分支
git merge qxd_edit
合并分支qxd_edit到master
- 删除 Git 分支主要分为删除本地分支和删除远程分支两种操作。
git branch -d branch_name
:删除本地分支
git branch -D branch_name
:强制删除分支会丢失该分支上的所有未合并的更改
删除远程分支:先在本地执行删除操作,然后再推送到远程仓库。删除远程分支通常需要相应的权限。
以下是一般的步骤:确认当前不在要删除的分支上。使用 git status 来检查当前所在的分支。
git branch -r -d origin/branch_name
:删除本地对远程分支的引用
git branch -dr origin/branch_name
:同时删除本地和远程的引用
将删除操作推送到远程仓库,从而真正删除远程分支。使用 git push
命令,并带上 :branch_name
语法来删除远程分支:
git push origin :branch_name
:冒号表示删除操作。
- 远程仓库
推送到远程库:以分支为单位
git remote -v
:查看当前所有远程库地址别名
git remote add别名 远程地址
:添加远程地址并取别名
git remote remove 别名
:删除远程库的别名。不会影响远程仓库本身,只是从本地仓库中移除了对该远程仓库的引用。
git push 远程库别名 分支名
:向远程库中推送本地分支,可能需要对应的登录或者,对应的口令(token)才能上传
git pull 远程库别名 分支名
:从远程库中拉取分支
git clone 远程仓库网址
:从远程库中克隆分支,为用户自动拉取代码、初始化本地库、创建别名(默认origin)
Pycharm与Git、Gitee
Pycharm配置Git
- 打开PyCharm IDE。
- 转到 File -> Settings。
- 在设置窗口中,导航到 Version Control -> Git。
- 配置Git的路径,找到Git的git.exe文件所在的位置,通常是
Git安装目录/bin/git.exe
。
如下图:
Pycharm配置Gitee
- 安装Gitee插件
在PyCharm的 Settings -> Plugins 中搜索 “Gitee”,安装并重启PyCharm以激活插件。如下图:
- 登录Gitee账户
在File -> Settings -> Version Control -> Gitee ->Add account登录账号,如下:
Pycharm之Git基本操作
-
创建本地库,顶端功能区选择版本控制器,创建Git库,如下图:
-
创建分支,点击右小角master图标,创建分支,如下图:
-
切换分支,点击右小角master图标, 如下图:
-
提交暂存区/本地库,选择文件/项目->Git->add/commit, 如下图:
-
推送远程库,顶端功能区VSC,分享到Gitee仓库, 如下图:
-
查看远程库,Gitee仓库,推送成功, 如下图:
常见问题
无法创建分支
为保护主分支的稳定性,主分支应该在创建新分支前进行提交,是因为主分支通常用来存放的是稳定且可发布的代码版本。在有新的提交后创建分支,意味着新分支是从一个已知的良好状态开始,这样开发者可以在新分支上安全地开发新功能或修复问题,而不直接影响主分支的代码。
Github push 失败
GitHub push失败可能由多种原因引起,以下是几种常见情况及其解决方案:
-
身份验证问题:
- 可能没有正确设置SSH密钥或HTTPS凭据。对于SSH,确保已经在GitHub上添加了本地生成的公钥;对于HTTPS,需要输入正确的用户名和密码,或者使用Personal Access Token替代密码。
-
非快进(non-fast-forward)提交:
- 当远程仓库的HEAD比您本地的提交更“新”,直接push会导致冲突。此时,您需要先pull远程仓库的最新改动,合并后再push。可以运行以下命令:
git pull origin <branch-name>git push origin <branch-name>
- 当远程仓库的HEAD比您本地的提交更“新”,直接push会导致冲突。此时,您需要先pull远程仓库的最新改动,合并后再push。可以运行以下命令:
-
推送权限不足:
- 检查是否有对目标仓库的push权限。如果是私有仓库,确保是仓库成员,并且具有适当的权限。
-
网络问题:
- Github 由于部署在国外,国内连接不稳定,建议多次尝试,或者尝试科学上网以提高push成功概率。。
总结
本文主要从Git与Gitee的关系进行说明,进一步的以Pycharm中,本地和远程仓库的基本操作进行进行说明,最后列举常见问题的解决办法。
致谢
欲尽善本文,因所视短浅,怎奈所书皆是瞽言蒭议。行文至此,诚向予助与余者致以谢意。
参考
- Git官网