Git 的基本概念和使用方式

Git是一个开源的分布式版本控制系统,用于跟踪计算机文件的变化和协作开发。它是由Linus Torvalds在2005年开发的,它可以帮助团队协同工作,保证代码的审查,管理版本控制工作流等。

Git基本概念:

  1. 仓库 (Repository) 仓库是 Git 中最重要的概念,它是存储项目代码的地方。它可以存在于本地计算机或者远程服务器上。

  2. 分支 (Branch) 分支是 Git 中用于管理并行开发的概念,每个分支代表了代码的一个版本。可以在分支上进行代码的修改,而不会影响主分支上的代码。

  3. 提交 (Commit) 提交是 Git 中保存代码更改的操作,每个提交包含了更改的代码和提交的说明信息。

  4. 合并 (Merge) 当两个分支上的代码需要合并时,可以使用合并操作,将两个分支上的代码合并为一个新的分支。

GIt命令:

Git是一种分布式版本控制系统,广泛应用于软件开发和其他领域。在工作中使用Git可以方便地管理代码库,协作开发等。以下是常用的Git命令和注意事项:

git init:初始化一个Git仓库。

git clone:克隆一个远程仓库到本地。

详细说明:

比如你本地本来并没有某个项目的代码仓库,此时随便找一个文件目录并进入cmd命令窗口,执行命令git clone [remote address],[remote address]就是对应的远程代码仓库地址,克隆完成之后,你便可以看到新建了一个目录,进入该目录,会看到.git,所有包含.git的目录其实就是你本地的关于该项目的一个git代码仓库。比如:

git add:添加文件到Git仓库

git commit:提交代码到Git仓库

用于将暂存区中的文件改动提交到本地仓库中。这个命令的主要作用是记录代码的修改历史,以便于后续的版本控制和代码管理。

具体来说,git commit命令会执行以下操作:

  1. 将暂存区中的文件改动添加到本地仓库中。
  2. 创建一个新的提交,该提交包含了代码的修改历史和提交信息。
  3. 将新的提交记录添加到本地仓库的历史记录中。

使用git commit的一般格式如下:

git commit -m "commit message"

其中,"commit message"是提交信息的描述,可以是一些备注信息或者对代码修改的描述。如果需要提交多个文件,可以在命令后面添加文件名,如"git commit file1.txt file2.txt"。

需要注意的是,git commit是Git系统中非常重要的一个命令,它用于记录代码的修改历史和提交信息。在使用git commit时,建议使用有意义的提交信息描述每一次提交的内容和目的,以便于后续的代码维护和理解。同时,如果需要修改已经上传的描述,可以使用命令"git commit --amend -m 'new commit message'"。

git push:将本地仓库推送到远程仓库

用于将本地仓库的代码推送到远程仓库。这个命令的主要作用是将本地的代码更新同步到远程仓库,以便于协作开发和备份。

具体来说,git push命令会执行以下操作:

  1. 将本地仓库的代码更新推送到远程仓库。
  2. 在远程仓库中创建或更新相应的分支。
  3. 如果远程仓库中不存在指定的分支,会自动创建一个同名分支。

使用git push的一般格式如下:

git push <远程主机名> <本地分支名>:<远程分支名>

其中,"远程主机名"是远程仓库的名称,"本地分支名"是本地的分支名称,"远程分支名"是远程仓库的分支名称。如果省略远程分支名,则表示将本地分支推送到与本地分支存在追踪关系的远程分支上。如果该远程分支不存在,则会自动创建一个。

对于新手来说,使用git push需要注意以下几点:

  1. 在执行git push之前,需要先确保已经将本地仓库的代码更新提交到本地仓库中。可以使用"git add"和"git commit"命令来添加和提交代码。
  2. 在执行git push之前,需要先确认已经连接到了正确的远程仓库。可以使用"git remote -v"命令查看当前配置的远程仓库信息。
  3. 如果需要推送多个分支,可以在git push后面添加多个分支名,中间用空格隔开。
  4. 如果推送过程中出现冲突,需要手动解决冲突后才能继续推送。
  5. 如果推送成功后想删除远程分支,可以使用"git push <远程主机名> --delete <远程分支名>"命令。
  6. 如果需要指定默认的远程仓库和分支名,可以使用"git config --global push.default matching"命令进行设置。
  7. 在执行git push时,需要确保已经正确配置了用户名和邮箱等信息,以便于记录代码的修改历史。可以使用"git config --global user.name"和"git config --global user.email"命令查看配置信息。

git pull:将远程仓库同步到本地

经过git clone之后,其实是把此刻最新的远程代码仓库给克隆到本地了。但如果项目团队中另一名成员提交了新的代码到远程仓库,比如这样:

完整的git pull命令是这样子的:git pull <远程主机名> <远程分支名>:<本地分支名>。

比如: git pull origin master:master。

那如果我就简单执行了git pull,没写这么长会发生什么呢?那么会把当前所在分支所跟踪的远程分支上新的提交,拉到当前分支上。

如果当前在master分支上,那么简单的执行git pull 即相当于 git pull origin master:master。如果当前不在master分支上,那么就只能老老实实执行git pull origin master:master了。

Git pull操作实际上分为两步,第一步执行了git fetch 第二步进行了 git merge

git **fetch:**获取最新的提交历史和分支信息

用于从远程仓库获取最新的提交历史和分支信息,但并不自动合并或修改本地代码。这意味着你可以获取到远程仓库的最新状态,并查看分支的更新情况,以便进行后续操作,如合并、比较或重新基于最新的提交进行开发。

具体来说,当你执行git fetch命令时,它会执行以下操作:

  1. 检查远程仓库是否有新的提交或分支。

  2. 获取远程仓库的最新提交历史,但不会应用到当前工作目录中。

  3. 更新本地仓库的远程分支指针,指向远程仓库的最新提交。

    git fetch <remote>

其中,<remote>是远程仓库的名称,如origin。通过执行git fetch命令,你可以获取远程仓库的最新状态,并查看分支的更新情况,以便进行后续操作,如合并、比较或重新基于最新的提交进行开发。需要注意的是,git fetch不会自动合并或修改你的本地代码。如果需要将远程分支的更改应用到本地分支,你可以使用git merge或git rebase命令来完成合并操作。此外,你还可以使用git remote show <remote>命令查看远程仓库的详细信息,包括分支列表和最新提交信息。总结一下,git fetch命令用于从远程仓库获取最新的提交历史和分支信息,但不会自动合并或修改本地代码。它是进行Git协作开发时常用的命令之一,可以帮助你保持和远程仓库的同步,以便后续操作。

git merge:合并分支

在Git中,merge的意思是"合并",该命令是用于将两个或两个以上的开发历史合并在一起的操作。通过执行git merge命令,可以将两个或多个分支的提交历史合并为一个分支。

具体来说,当你执行git merge命令时,它会执行以下操作:

  1. 获取目标分支的最新提交历史。
  2. 将当前所在分支与目标分支进行合并。
  3. 将合并的结果应用到当前所在分支上。

使用git merge的一般格式如下:

git merge <branch>

其中,<branch>是要合并的目标分支的名称。通过执行git merge命令,可以将指定分支的提交历史合并到当前所在分支上。在合并过程中,Git会尝试将不同分支的提交历史线性化,并将它们放回到一起。如果出现冲突,Git会提示你解决冲突。解决冲突后,你需要执行额外的提交操作来完成合并。需要注意的是,git merge通常与其他几个Git命令一起使用,包括使用git checkout命令来选择当前工作分支,以及使用git branch -d命令来删除已经合并过的废弃分支。

总结一下,git merge命令用于将两个或多个分支的提交历史合并为一个分支。它是Git中非常重要的操作之一,可以帮助你保持代码库的同步和一致性。

git branch:创建、查看、删除分支

用于创建、删除、切换分支以及查看分支列表。

分支是Git版本控制系统中的重要概念,它允许开发者在同一个代码库上创建不同的开发线路,从而支持并行开发、特性开发、版本发布等等。

具体来说,git branch命令可以执行以下操作:

  1. 创建新的分支:使用"git branch <branch name>"命令可以创建一个新的分支,其中"<branch name>"是分支的名称。
  2. 切换分支:使用"git checkout <branch name>"命令可以切换到指定的分支,如果该分支不存在,则会创建一个新的分支。
  3. 删除分支:使用"git branch -d <branch name>"命令可以删除一个分支,前提是该分支已经被合并到其他分支。如果分支上有未合并的更改,需要使用"git branch -D <branch name>"命令强制删除。
  4. 查看分支列表:使用"git branch"命令可以查看当前所有的分支列表,包括已经合并的和未合并的分支。

对于新手来说,使用git branch需要注意以下几点:

  1. 在创建新的分支时,建议使用"git checkout -b <branch name>"命令同时创建并切换到新的分支,这样可以避免在不同分支之间来回切换。
  2. 在删除分支时,需要先确认该分支是否已经被合并到其他分支,如果没有合并,需要强制删除,否则可能会丢失未合并的更改。
  3. 在切换分支时,需要先确认当前所在的分支是否已经修改了文件但还没有提交,如果是的话需要先提交更改或者撤销更改,否则切换分支时可能会丢失修改。
  4. 在查看分支列表时,可以使用"git branch -a"命令查看所有的分支列表,包括已经合并的和未合并的分支。

git checkout:切换分支

用于创建、切换分支或恢复工作树文件。它可以在不同的分支之间进行切换,也可以撤销工作树文件的更改。

具体来说,git checkout命令可以执行以下操作:

  1. 创建并切换到新的分支:使用"git checkout -b <branch>"命令可以创建一个新的分支并切换到该分支。
  2. 切换到已有的分支:使用"git checkout <branch>"命令可以切换到已有的分支。
  3. 恢复工作树文件的更改:使用"git checkout -- ."命令可以撤销工作树中的更改,将工作树恢复到最近一次提交的状态。如果想要撤销某个特定文件或者目录的更改,可以在"."后面加上文件路径。
  4. 基于远程库分支创建分支:使用"git checkout -b <branch> origin/<branch>"命令可以基于远程库中的分支创建一个新的分支,并将远程库中的分支信息同步到本地新分支中。
  5. 基于指定标签创建分支:使用"git checkout <tagname>"命令可以切换到与指定标签对应的提交记录,并创建一个新的分支。
  6. 基于指定提交 id 创建分支:使用"git checkout <commit id>"命令可以切换到与指定提交记录对应的提交状态,并创建一个新的分支。

对于新手来说,使用git checkout需要注意以下几点:

  1. 在执行git checkout命令时,需要先确认当前所在的分支是否已经修改了文件但还没有提交,如果是的话需要先提交更改或者撤销更改,否则切换分支时可能会丢失修改。
  2. 在基于远程库分支创建分支时,需要先执行"git fetch"命令获取远程库的最新状态信息,否则可能会创建不存在的分支。
  3. 在基于指定标签或提交 id 创建分支时,需要先确定该标签或提交 id 是否存在,否则可能会创建不存在的分支。
  4. 在恢复工作树文件的更改时,需要注意只撤销工作树中的更改,不会影响到暂存区的更改。如果想要撤销暂存区的更改,需要使用"git reset"命令。
  5. 在执行git checkout命令时,需要小心使用"-f"选项,该选项会强制切换到新的分支并删除当前所在分支的信息,需要谨慎操作以免误删除重要分支。

git log:查看提交记录

注意事项:

  1. 当准备提交代码时,必须先执行git pull命令,将远程服务器的代码同步到本地,避免发生冲突。
  2. 在执行git commit前再执行一次git pull,确认服务器端代码没有修改后,然后再执行git commit,紧接着执行git push,将代码推送到服务器,避免中间有其他同事提交代码导致代码冲突而无法推送到服务器。
  3. 当需要撤销已经提交的代码时,可以使用git reset --hard HEAD~1命令回滚到上一版本。但请注意,这个命令无法恢复已经删除的文件,所以请谨慎使用。
  4. 当需要查看所有的提交版本记录时,可以使用git reflog命令。这个命令可以显示所有的提交记录,包括已经被撤销的提交。
  5. 当使用Git进行协作时,建议使用分支进行开发。在推送到远程仓库前,确保已经解决了所有可能的冲突。
  6. 当使用Git进行版本控制时,建议定期备份代码库,以防止数据丢失或损坏。
  7. 在使用Git进行版本管理时,建议及时合并分支和更新代码库,以确保代码的一致性和可维护性。
  8. 当使用Git进行代码管理时,建议使用合适的提交信息描述每一次提交的内容和目的,以便于后续的代码维护和理解。
  9. 在开发过程中,要及时提交代码,不要等到所有的代码都写完再提交
  10. 在提交代码时,要写明提交信息,包括修改的内容和原因,以便于其他人查看
  11. 在合并分支时,要先将当前分支的代码提交并推送到远程仓库,以免出现代码冲突
  12. 在与其他人协作开发时,要遵循相同的开发流程和代码规范,以保证代码质量和协作效率
  13. 在使用Git时,要注意保护个人隐私和代码安全,不要将敏感信息提交到Git仓库中。

总之,Git 是一个非常强大的版本控制系统,可以帮助开发者管理项目代码,实现团队协作,保证代码的稳定性和可靠性。

相关推荐
研究是为了理解5 小时前
Git Bash 常用命令
git·elasticsearch·bash
DKPT5 小时前
Git 的基本概念和使用方式
git
Winston Wood8 小时前
一文了解git TAG
git·版本控制
喵喵先森9 小时前
Git 的基本概念和使用方式
git·源代码管理
xianwu54310 小时前
反向代理模块
linux·开发语言·网络·git
binishuaio12 小时前
Java 第11天 (git版本控制器基础用法)
java·开发语言·git
会发光的猪。13 小时前
如何在vscode中安装git详细新手教程
前端·ide·git·vscode
stewie615 小时前
在IDEA中使用Git
java·git
晓理紫1 天前
使用git lfs向huggingface提交较大的数据或者权重
git
我不是程序猿儿1 天前
【GIT】sourceTree的“当前分支“,“合并分支“与“检出分支的区别
git