什么是Git?
- 分布式版本控制系统
- 可以有效、高速地处理从很小到非常大的项目版本管理
- 操作流程涉及到
- 工作区
- 暂存区
- 本地仓库
- 远程仓库 话不多说,直接开始操作
Git config
// 第一次使用git,需要配置用户名和邮箱
git config --global user.name "your name"
git config --global user.email "youremail@github.com"
// 当前git配置列表
git config --list
// 列出git全局配置
C:\local\前端\git>git config --global --list
user.email=email@qq.com
user.name=username
// 列出系统配置
git config --system --list
Git init
// 创建新仓库,初始化新版本
C:\local\git>git init
Initialized empty Git repository in C:/local/git/.git/
Git clone
// 克隆远程仓库到本地
C:\local\git>git clone https://github.com/Surprise-ling/vue3-typescript-admin.git
Cloning into 'vue3-typescript-admin'...
remote: Enumerating objects: 864, done.
remote: Counting objects: 100% (864/864), done.
remote: Compressing objects: 100% (392/392), done.
Receiving objects: 100% (864/864), 12.51 MiB | 222.00 KiB/s, done.
Resolving deltas: 100% (379/379), done.
Git status
// 查看在上次提交之后对那些文件进行了修改
C:\local\git>git status
On branch ljl
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
modified: src/store/index.ts
// 查看在上次提交之后对那些文件进行了修改,显示简短的信息结果
C:\local\git>git status -s
M src/store/index.ts
Git add
// 添加指定文件到缓存区
git add file1 file2
// 添加当前目录下的所有文件到缓存区
git add .
// 添加当前目录下的所有文件到缓存区
git add -A
Git branch
// 创建本地main分支
git branch main
// 删除本地main分支
C:\local\git>git branch -D master
Deleted branch master (was 1322019).
// 查看当前仓库分支版本
C:\local\git>git branch -v
* main 3e533f0 [ahead 3] :bug:fix(debug): debug
// 查看关联的远程的分支
C:\local\git>git branch -r
origin/main
// 查看本地和远程的分支
C:\local\git>git branch -a
* main
remotes/origin/main
// 重命名分支
git branch -m oldbranch newbranch
// 强制重命名分支
git branch -M newbranch
Git checkout
// 切换到dev分支
C:\local\git>git checkout dev
Switched to branch 'dev'
// 创建并切换到main分支
C:\local\git>git checkout -b main
Switched to a new branch 'main'
// 在本地创建并切换到main分支,关联本地远程仓库main分支的代码版本
git checkout -b main<本地新分支> origin/main<远程分支>
// 放弃工作区中的全部的修改,没有git add .的修改
git checkout .
// 放弃工作区某个文件的修改
git checkout -- filename
// 强制放弃工作区的改动,包括git add .的修改
git checkout -f
Git merge
// 将main分支的代码合并到当前分支
git merge main
Git push
// 将代码提交到远程仓库origin的main分支
git push <远程主机名><本地分支名>:<远程分支名>
// 如果<本地分支>和<远程分支>相同,则可以省略:<远程分支名>
C:\local\git>git push origin main
Enumerating objects: 847, done.
Counting objects: 100% (847/847), done.
Delta compression using up to 8 threads
Compressing objects: 100% (610/610), done.
Writing objects: 100% (847/847), 12.49 MiB | 30.59 MiB/s, done.
Total 847 (delta 367), reused 253 (delta 135)
remote: Resolving deltas: 100% (367/367), done.
remote:
remote: Create a pull request for 'main' on GitHub by visiting:
remote: https://github.com/Surprise-ling/vue3-typescript-admin/pull/new/main
remote:
To https://github.com/Surprise-ling/vue3-typescript-admin.git
* [new branch] main -> main
git push -u origin main
// 本地main分支与远程分支相关联,指定默认主机
// 之后只需要git push推送,默认只推送当前分支
git push -f origin main
// 强制推送到main分支的远程仓库分支
// 因为本地仓库版本比远程仓库上的低,需要先git pull更新,才能正常提交
// 如果不使用git pull更新,则可以使用 -f 强制推送
git push --all origin
// 将本地所有分支推送到远程仓库,不管远程仓库是否存在对应的分支
// 删除远程仓库对应master分支
C:\local\git>git push origin --d master
To https://github.com
- [deleted] master
Git stash
git stash
// 暂存本利修改的内容,将目前分支的本地版本回复到上一次pull的状态
// 可以存储多个修改内con
git stash pop
// 将本地暂存的修改内容恢复到最后一次stash保存的内容
git stash pop stash@{0}
// 恢复指定暂存内容
// 如果有多个暂存内容,每次pop之前,需要git commit提交本次修改到版本库中
//查看当前存储的所有stash信息
C:\local\git>git stash list
stash@{0}: On ljl: list2
stash@{1}: On ljl: list1
git stash drop
// 删除最后一次暂存的内容
git stash drop stash@{0}
// 删除指定暂存内容
Git pull
git pull
// git pull = git fetch + git merge
// git fetch origin master + git merge origin/master
// 相当于拉取远程分支的更新代码,再与本地的指定分支合并
git pull origin master:master
// git pull <远程主机名> <远程分支名>:<本地分支名>
// 将远程仓库分支master拉取到本地目前分支
git pull origin master
// 如果本地分支名与远程仓库分支名相同,则可以省略冒号后面的内容
Git reset
git reset <--soft | --mixed | --hard> [HEAD]
// --mixed(默认):回滚到指定版本,并重置您的提交,文件之后的修改放入工作区
// --soft:回滚到指定版本,并重置您的提交,文件之后的修改放入缓存区,可直接提交
// --hard:回滚到指定版本,并重置您的提交,文件之后的所有修改全部消失
git reset HEAD^
// 回退所有内容到上一个版本
HEAD^:表示上一个版本
HEAD^^:表示上上一个版本
// 还可以使用数字表示
HEAD^2上上一个版本
HEAD^3上上上一个版本
// 以此类推...
or
HEAD~0 表示当前版本
HEAD~1 表示上一个版本
git reset HEAD^ package.json
// 回退package.json文件到上一个版本
git reset 052e3g5e
// 回退到指定版本
结语
以上则是Git的常用基本操作命令
如今的多人团队开发中,都需要掌握Git的使用
Git能够很好的管理版本记录并能够基本解决多人开发的版本问题
感谢
谢谢你读完本篇文章,希望对你能有所帮助,如有问题欢迎指正。
我是瑾江,如果觉得写得可以的话,请点个赞吧。
「点赞」+「在看」+「转发」 谢谢支持