后端实践 git的使用 | 豆包MarsCode AI刷题

89 阅读3分钟

分布式版本控制 Git

基本原理

  1. 每个库都存有完整的提交历史,可以直接在本地进行代码提交。
  2. 每次提交记录的都是完整的文件快照,而不是记录增量。
  3. 通过Push等操作来完成和远端代码的同步。

优点

  1. 分布式开发,每个库都是完整的提交历史,支持本地提交,强调个体。
  2. 分支管理功能强大,方便团队合作,多人协同开发。
  3. 校验和机制保证完整性,一般只添加数据,很少执行制除操作,不容易导致代码丢失。

git的基本命令及使用方式

一、新建代码库

1. 在当前目录新建一个Git代码库$ git init
2. 新建一个目录,将其初始化为Git代码库$ git init [project-name]
3. 下载一个项目和它的整个代码历史$ git clone [url]

二、配置

Git配置信息在.git/config里面

  • $ git --version: 查看Git版本号
  • $ which git: 显示当前Git路径
  • $ git config --list: 查看配置信息。可以看到user.nameuser.email信息。在当前项目下查看的配置是全局配置+当前项目的配置,使用的时候会优先使用当前项目的配置。

配置全局用户名和邮箱:

  • $ git config --global user.name "yourName"
  • $ git config --global user.email "yourEmail"

单独针对某一个项目配置Git用户名和邮箱:

  • $ git config user.name "yourName"
  • $ git config user.email "yourEmail"

三、增加、删除文件

1. 添加指定文件到暂存区$ git add [file1] [file2]
2. 添加指定目录到暂存区,包括子目录$ git add [dir]
3. 添加当前目录的所有文件到暂存区$ git add .
4. 删除工作区文件,并且将这次删除放入暂存区$ git rm [file1] [file2]
5. 停止追踪指定文件,但该文件会保留在工作区$ git rm --cached [file]
6. 改名文件,并将这个改名放入暂存区$ git mv [file-name] [file-renamed]

四、代码提交

1. 提交暂存区到仓库区$ git commit -m [message]
2. 提交指定区的指定文件到仓库区$ git commit [file1] [file2] ... -m [message]
3. 提交工作区自上次提交之后的变化,直接到仓库区$ git commit -a
4. 提交时显示所有的diff信息$ git commit -v
5. 使用一次新的提交,替代上一次提交(如果代码没有任何变化,则用来改写上一次提交的提交信息)$ git commit --amend -m [message]
6. 重做上一次提交,并包括指定文件的新变化$ git commit --amend [file1] [file2]

五、分支

1. 列出所有本地分支$ git branch
2. 列出所有远程分支$ git branch -r
3. 列出所有本地分支和远程分支$ git branch -a
4. 新建一个分支,但依然停留在当前分支$ git branch [branch-name]
5. 新建一个分支,并切换到该分支$ git checkout -b [branch-name]
6. 切换到指定分支,并更新工作区$ git checkout [branch-name]
7. 将现有分支与指定远程分支建立追踪关系$ git branch --track [branch] [remote-branch]
8. 合并指定分支到当前分支$ git merge [branch]
9. 删除分支$ git branch -d [branch-name]
10. 删除远程分支$ git push origin --delete [branch-name]

六、标签

1. 列出所有tag$ git tag
2. 新建一个tag在当前commit$ git tag [tag]
3. 新建一个tag在指定commit$ git tag [tag] [commit]
4. 删除本地tag$ git tag -d [tag]
5. 删除远程tag$ git push origin :refs/tags/[tagName]
6. 查看tag信息$ git show [tag]
7. 提交指定tag$ git push [remote] [tag]
8. 提交所有tag$ git push [remote] --tags

七、查看信息

1. 显示变更的文件$ git status
2. 显示暂存区和工作区的差异$ git diff
3. 显示你今天写了多少行代码$ git diff --shortstat "{0 day ago}"
4. 显示当前分支的最近几次提交$ git reflog

八、远程同步

1. 将现有仓库与远程仓库建立联系$ git remote add origin [remote address]
2. 下载远程仓库的所有变动$ git fetch [remote]
3. 显示所有远程仓库$ git remote -v
4. 取回远程仓库的变化,并与本地分支合并$ git pull [remote] [branch]
5. 上传指定分支到远程仓库$ git push [remote] [branch]
6. 推送所有分支到远程仓库$ git push [remote] --all

九、回退

1. 恢复暂存区的指定文件到工作区$ git checkout [file]
2. 重置当前HEAD为指定commit,同时重置暂存区和工作区,与指定commit一致$ git reset --hard [commit]
3. 恢复暂存区所有文件到工作区$ git checkout .
4. 远程版本回退先本地版本回退后再使用命令:$ git push origin HEAD --force

十、暂存

1. 暂存$ git stash
2. 查看暂存记录$ git stash list
3. 恢复暂存并删除这个记录$ git stash pop stash@{index}
4. 恢复暂存并保留这个记录$ git stash apply stash@{index}
5. 删除某个暂存记录$ git stash drop stash@{index}
6. 删除全部暂存记录$ git stash clear

十一、其他

1. 生成一个可供发布的压缩包$ git archive
2. 将一个或多个特定的提交应用到当前分支(非常有用)$ cherry pick

为什么要学习git

git是目前企业进行代码管理非常主流的工具,掌握git工具是非常重要的,而且git的功能并不只有平时push,clone这些简单的拉取代码,推送代码,它还能对代码暂存、分支合作、合并分支、解决分支冲突等功能,在实际应用中非常重要,希望每个同学都能够多多了解git,对于以后的代码管理能有很大的帮助。