南通公司快速建站,站长统计是什么意思,文件管理系统 wordpress,wordpress更换子域名1.Git的优势
Git是一个伟大的版本管理工具#xff0c;比之svn#xff0c;具有以下优势#xff1a; 分布式版本控制#xff1a;Git是一种分布式版本控制系统#xff0c;每个开发者都拥有自己的完整代码库#xff0c;不需要依赖网络连接就可以进行版本控制、合并和提交操作…1.Git的优势
Git是一个伟大的版本管理工具比之svn具有以下优势 分布式版本控制Git是一种分布式版本控制系统每个开发者都拥有自己的完整代码库不需要依赖网络连接就可以进行版本控制、合并和提交操作。这样可以提高开发效率并降低了对网络的依赖。 速度快Git的设计目标之一就是速度。相对于SVNGit在提交、分支、合并和切换等操作上都有更快的响应速度。 强大的分支管理Git的分支管理非常强大支持轻松创建、合并和删除分支。这使得开发人员能够轻松地进行并行开发同时保持代码库的稳定性。
然而Git也没能全面占领svn的市场因为研发团队的成员不一定都是技术出身例如策划测试同学svn容易上手换成git根本搞不定。
2.Git的基本概念
首先需要了解下Git的工作区、暂存区、仓库区本地仓库、远程仓库的概念
工作区你在电脑里能看到的目录比如我们的workspace 文件夹就是一个工作区。暂存区.git目录下的index文件可以用 git add 命令将工作区的文件添加到暂存区。仓库区本地仓库.git目录下的objects文件夹可以用 git commit 命令将暂存区的内容提交到仓库区。远程仓库远程服务器上的仓库可以用 git push 命令将本地仓库的内容推送到远程仓库。
3. Git常用命令
Git虽然也有自己的GUI工具但除了文件比较比较方便之外其他还是觉得命令行用得舒服。
3.1从github下载仓库
git clone [https://github.com/kingston-csj/jforgame] 3.2更新远程代码
git pull
3.3添加文件到本地暂存区
// 指定文件
git add pom.xml
// 匹配所有java文件
git add *.java
// 所有文件
git add .
3.4提交文件到本地仓库
git commit -m 牛逼的优化
3.5推送本地代码到远程仓库
git push
3.6查看本地文件状态
git status
3.7查看本地仓库提交日志
// 查看全部提交记录,按空格下一页
git log
// 查看前几条提交记录
git log -n3.8查看所有分支
git branch
3.9创建分支
//创建分支不切换
git branch 分支名
//创建分支并切换
git checkout -b 分支名
3.10删除分支
git branch -d 分支名
3.11删除远程分支
git push origin --delete 分支名
3.12合并dev分支合并到master分支
//切换到master分支
git checkout master
//拉取远程代码
git pull
//合并代码
git merge dev
//推送到master分支
git push origin master
3.13合并部分提交到master分支
git cherry-pick commitid
3.14比较文件
git diff xx.java
3.15保存当前的工作进度并清空工作区
git stash
3.16查看保存的工作进度列表
git stash list
3.17将保存的工作进度应用到当前分支
git stash pop
3.18代码还原从工作区区还原
// 单个文件
git checkout -- jforgame-demo/src/main/java/jforgame/demo/socket/GameServer.
java
// 模糊匹配
git checkout -- *.java
3.19代码还原从暂存区还原
git restore --stage jforgame-demo/src/main/java/jforgame/demo/socket/GameServer.java
3.20代码还原从仓库还原本地代码也会清除
//返回到上一个版本代码
git reset --hard HEAD^
//返回到上上一个版本代码
git reset --hard HEAD^^
//返回到指定版本
git reset --hard commitid -------------未完待续
4.常见命令的区别
4.1git stash apply与 git stash pop
git stash apply命令会将保存的工作进度应用到当前分支但不会删除stashgit stash pop命令则会将保存的工作进度应用到当前分支并且删除stash
4.2git fetch与git pull git fetchgit fetch是将远程仓库的最新代码下载到本地但并不会自动合并到当前分支。它将更新远程仓库的追踪分支如origin/master但不会影响当前分支。这个命令可以让你查看远程分支的更新情况并进行比较和分析然后决定是否将更新合并到当前分支。 git pullgit pull在执行时会先执行git fetch命令然后自动将远程分支的更新合并到当前分支。相当于git fetch git merge。如果当前分支有未提交的修改git pull会尝试自动合并如果出现冲突则需要手动解决冲突。因此git pull更适合在需要快速获取远程更新并合并到当前分支的情况下使用。
4.3git reset --hard与git reset --soft
git reset --hard回退到某个commit不保留任何修改。这意味着所有未提交的更改和未跟踪的文件都将被永久删除。
git reset --soft回退到某个commit保留修改。这意味着之前已经添加到暂存区的更改还会保留下来你可以重新提交这些更改。未跟踪的文件仍然保留在工作目录中。 -------------未完待续 5.常见错误操作
在使用 Git 过程中有一些常见的错误操作可能会导致代码丢失或者历史记录被修改。以下是一些常见的错误操作
git commit --amend如果你在提交代码后发现需要修改提交信息或添加遗漏的文件可以使用 git commit --amend 命令。然而如果在执行此命令之前已经进行过推送push操作那么推送会失败并且需要执行强制推送force push操作来修改远程仓库中的历史记录。git reset --hardgit reset --hard 命令可以用来重置当前分支的 HEAD 和索引index到指定的提交版本并且会丢弃所有未提交的更改。如果你在工作目录中有未保存的更改执行此命令将会永久删除这些更改无法恢复。git push --force正常情况下Git 会拒绝非快进式的推送操作以避免覆盖其他人的更改。然而如果你执行 git push --force 命令将会强制推送本地分支到远程仓库即使这可能会覆盖其他人的更改。因此在执行强制推送操作之前需要确保与团队成员协商一致。git checkout -b当你在一个分支上使用 git checkout -b branch 命令创建新分支时如果已经有一个同名的分支存在Git 会自动切换到该分支而不是创建新分支。这可能会导致你在错误的分支上进行开发。git clean -fgit clean -f 命令用于删除工作目录中未跟踪的文件。但是如果你执行此命令时未注意可能会误删一些重要的文件。因此在执行此命令之前需要确保你真的要删除这些文件。git checkout branch当你准备切换分支务必要将工作区的代码先提交。否则切换之后本地代码将会丢失。或者先把工作区的代码通过git stash命令缓存起来。
-------------未完待续