Git使用教程
文章目录
首先,在使用大量工具和idea的集成环境后,突然发现好多git命令不会用了, 这里重新温顾一下:
1 git安装
1.1 下载
https://git-scm.com/ 下载地址,根据自己的操作系统下载对应版本的git
1.2 初始化仓库
仓库用来存放git备份的资源
git init
1.3 git 配置用户信息
git config --global user.name "shi860715" #用户
git config --global user.email "shi860715@126.com" #邮箱
1.4 添加文件
git add ./readme.md
1.5 本地提交
git commit -m "提交说明"
Administrator@DESKTOP-KLL643E MINGW64 /d/vue_beatiful/myvue (master)
$ git add .
Administrator@DESKTOP-KLL643E MINGW64 /d/vue_beatiful/myvue (master)
$ git commit -m "first time up "
[master (root-commit) a4a3b4f] first time up
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 readme.md
Administrator@DESKTOP-KLL643E MINGW64 /d/vue_beatiful/myvue (master)
$
1.6 查看工作区状态
git status #工作区状态
#当文件没有修改时
Administrator@DESKTOP-KLL643E MINGW64 /d/vue_beatiful/myvue (master)
$ git status
On branch master
nothing to commit, working tree clean
#当文件有修改时
Administrator@DESKTOP-KLL643E MINGW64 /d/vue_beatiful/myvue (master)
$ git status
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: readme.md
no changes added to commit (use "git add" and/or "git commit -a")
Administrator@DESKTOP-KLL643E MINGW64 /d/vue_beatiful/myvue (master)
$ git status
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: readme.md
Untracked files:
(use "git add <file>..." to include in what will be committed)
hello.js
no changes added to commit (use "git add" and/or "git commit -a")
Administrator@DESKTOP-KLL643E MINGW64 /d/vue_beatiful/myvue (master)
$ git add ./ # 批量添加
Administrator@DESKTOP-KLL643E MINGW64 /d/vue_beatiful/myvue (master)
$ git status
On branch master
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
new file: hello.js
modified: readme.md
1.7 全部添加
git commit --all -m "直接添加所有的文件"
1.8 查看日志
git log #查看提交的日志
Administrator@DESKTOP-KLL643E MINGW64 /d/vue_beatiful/myvue (master)
$ git log
commit 631277e006abcfb03c243bc0f2153a3c2689b428 (HEAD -> master)
Author: shi860715@126.com <shi860715@126.com>
Date: Thu Dec 17 13:09:17 2020 +0800
添加hello js 和添加新功能
commit 4b7f90834e0bdb481060735493d70e8945f96e39
Author: shi860715@126.com <shi860715@126.com>
Date: Thu Dec 17 11:55:39 2020 +0800
three time up
commit 8dd7d9c300e9d9f97ca46b2470ca9ccae9fad36c
Author: shi860715@126.com <shi860715@126.com>
Date: Thu Dec 17 11:55:06 2020 +0800
second time up
commit a4a3b4f2110daef706e888ffc78398575bfeb373
Author: shi860715@126.com <shi860715@126.com>
Date: Thu Dec 17 11:51:52 2020 +0800
first time up
git log --oneline # 查看提交日志显示为单行模式
$ git log --oneline
631277e (HEAD -> master) 添加hello js 和添加新功能
4b7f908 three time up
8dd7d9c second time up
a4a3b4f first time up
1.9 版本回退
git reset --hard Head~0 #将本地版本回退到最新的状态。 0 表示最新 1 表示回退到第二个版本 以此类推
Administrator@DESKTOP-KLL643E MINGW64 /d/vue_beatiful/myvue (master)
$ git reset --hard HEAD~0
HEAD is now at 631277e 添加hello js 和添加新功能
git reset --hard 631277e #通过版本号来精确的回退
#指定版本信息来进行版本回退
Administrator@DESKTOP-KLL643E MINGW64 /d/vue_beatiful/myvue (master)
$ git reset --hard 631277e
HEAD is now at 631277e 添加hello js 和添加新功能
git reflog #查看每一次版本切换的记录
Administrator@DESKTOP-KLL643E MINGW64 /d/vue_beatiful/myvue (master)
$ git reflog
631277e (HEAD -> master) HEAD@{0}: reset: moving to 631277e
a4a3b4f HEAD@{1}: reset: moving to HEAD~0
a4a3b4f HEAD@{2}: reset: moving to HEAD~3
631277e (HEAD -> master) HEAD@{3}: reset: moving to HEAD~0
631277e (HEAD -> master) HEAD@{4}: commit: 添加hello js 和添加新功能
4b7f908 HEAD@{5}: commit: three time up
8dd7d9c HEAD@{6}: commit: second time up
a4a3b4f HEAD@{7}: commit (initial): first time up
Administrator@DESKTOP-KLL643E MINGW64 /d/vue_beatiful/myvue (master)
1.10 分支创建、切换、合并
#创建分支 刚创建的时候,dev分支和master分支是一样的
git branch dev
#查看分支
git branch
#切换分支
git checkout dev
--------------------------------------------------------------------测试创建分支
Administrator@DESKTOP-KLL643E MINGW64 /d/vue_beatiful/myvue (master)
$ git branch dev #创建分支
Administrator@DESKTOP-KLL643E MINGW64 /d/vue_beatiful/myvue (master)
$ git branch #查看分支状态
dev
* master
-----------------------------------------------------------------------测试切换分支
Administrator@DESKTOP-KLL643E MINGW64 /d/vue_beatiful/myvue (master)
$ git checkout dev #切换分支
Switched to branch 'dev'
Administrator@DESKTOP-KLL643E MINGW64 /d/vue_beatiful/myvue (dev)
$ git branch #查看分支状态
* dev
master
------------------------------------------------------------------------测试分支合并
Administrator@DESKTOP-KLL643E MINGW64 /d/vue_beatiful/myvue (dev)
$ git commit --all -m "dev 分支开发了一半了"
[dev 59ef6c6] dev 分支开发了一半了
1 file changed, 3 insertions(+), 1 deletion(-)
Administrator@DESKTOP-KLL643E MINGW64 /d/vue_beatiful/myvue (dev)
$ git commit --all -m "dev 分支开发了已经完成了"
[dev e947d08] dev 分支开发了已经完成了
1 file changed, 3 insertions(+), 1 deletion(-)
Administrator@DESKTOP-KLL643E MINGW64 /d/vue_beatiful/myvue (dev)
$ git checkout master #切换回主分支
Switched to branch 'master'
Administrator@DESKTOP-KLL643E MINGW64 /d/vue_beatiful/myvue (master)
$ git merge dev #合并分支 把当前master分支和指定的分支进行合并
Updating 631277e..e947d08
Fast-forward
readme.md | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
Administrator@DESKTOP-KLL643E MINGW64 /d/vue_beatiful/myvue (master)
$ git log --oneline #查看主分支日志
e947d08 (HEAD -> master, dev) dev 分支开发了已经完成了
59ef6c6 dev 分支开发了一半了
631277e 添加hello js 和添加新功能
4b7f908 three time up
8dd7d9c second time up
a4a3b4f first time up
git branch -d dev #删除dev分支
合并时候,如果有冲突,需要手动去处理。处理后还需要提交一次
1.11 将本地代码上传到gitee
#git push上传命令 后面上传地址 上传的分支
git push git@gitee.com:shi860715/myvue.git master
Administrator@DESKTOP-KLL643E MINGW64 /d/vue_beatiful/myvue (dev)
$ git push git@gitee.com:shi860715/myvue.git master
Enumerating objects: 18, done.
Counting objects: 100% (18/18), done.
Delta compression using up to 16 threads
Compressing objects: 100% (13/13), done.
Writing objects: 100% (18/18), 1.53 KiB | 1.53 MiB/s, done.
Total 18 (delta 3), reused 0 (delta 0), pack-reused 0
remote: Powered by GITEE.COM [GNK-5.0]
To gitee.com:shi860715/myvue.git
* [new branch] master -> master
Administrator@DESKTOP-KLL643E MINGW64 /d/vue_beatiful/myvue (dev)
----------------------------------------------------------------------------完成分支上传和主分支合并上传的功能
Administrator@DESKTOP-KLL643E MINGW64 /d/vue_beatiful/myvue (dev)
$ git commit --all -m "dev 分支添加新功能"
[dev 0972fd5] dev 分支添加新功能
1 file changed, 3 insertions(+), 1 deletion(-)
Administrator@DESKTOP-KLL643E MINGW64 /d/vue_beatiful/myvue (dev)
$ git push git@gitee.com:shi860715/myvue.git dev
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 16 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 356 bytes | 356.00 KiB/s, done.
Total 3 (delta 1), reused 0 (delta 0), pack-reused 0
remote: Powered by GITEE.COM [GNK-5.0]
To gitee.com:shi860715/myvue.git
e947d08..0972fd5 dev -> dev
Administrator@DESKTOP-KLL643E MINGW64 /d/vue_beatiful/myvue (dev)
$ git checkout master
Switched to branch 'master'
Administrator@DESKTOP-KLL643E MINGW64 /d/vue_beatiful/myvue (master)
$ git merge dev
Updating e947d08..0972fd5
Fast-forward
readme.md | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
Administrator@DESKTOP-KLL643E MINGW64 /d/vue_beatiful/myvue (master)
$ git push git@gitee.com:shi860715/myvue.git master
Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
remote: Powered by GITEE.COM [GNK-5.0]
To gitee.com:shi860715/myvue.git
e947d08..0972fd5 master -> master
Administrator@DESKTOP-KLL643E MINGW64 /d/vue_beatiful/myvue (master)
1.12 远程拉去仓库
git pull git@gitee.com:shi860715/myvue.git master # 拉去命令 地址 仓库(本地要初始化仓库)
------------------------------------------------------------模拟sh用户拉去git代码
Administrator@DESKTOP-KLL643E MINGW64 ~/Desktop/SH
$ git init
Initialized empty Git repository in C:/Users/Administrator/Desktop/SH/.git/
Administrator@DESKTOP-KLL643E MINGW64 ~/Desktop/SH (master)
$ git pull git@gitee.com:shi860715/myvue.git master
remote: Enumerating objects: 21, done.
remote: Counting objects: 100% (21/21), done.
remote: Compressing objects: 100% (16/16), done.
remote: Total 21 (delta 4), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (21/21), 1.80 KiB | 28.00 KiB/s, done.
From gitee.com:shi860715/myvue
* branch master -> FETCH_HEAD
Administrator@DESKTOP-KLL643E MINGW64 ~/Desktop/SH (master)
$ git log --oneline
0972fd5 (HEAD -> master) dev 分支添加新功能
e947d08 dev 分支开发了已经完成了
59ef6c6 dev 分支开发了一半了
631277e 添加hello js 和添加新功能
4b7f908 three time up
8dd7d9c second time up
a4a3b4f first time up
1.13 clone的方式
git clone 地址 # 会得到远程仓库相同的数据,如果多次执行会覆盖本地内容,而使用pull 则不会覆盖
1.14 ssh
ssh-keygen -t rsa -C "邮箱"
#然后一直下一步就可以 然后公钥贴到gitee中就行
1.15 先pull 在push
在实际开发中经常遇到服务器版本与本地版本不一致的情况,建议,先进行pull 在进行push。