常用命令
#在文件目录中执行,用于创建本地仓库
git init
#查看的修改的状态(暂存区、工作区)
git status
#命令格式
git status
#添加工作区一个或多个文件的修改到暂存区
git add
#命令格式
git add.
#提交暂存区内容到本地仓库的当前分支
git commit
#命令格式
git commit -m "注释内容"
#查看提交日志
git log
#命令格式
git log [options]
git log --all --pretty=oneline --abbrev-commit --graph
[options]
--all #显示所有分支
--pretty=oneline #将提交信息显示为一行
--abbrev-commit #使得输出的commitId更简短
--graph #以图的形式显示
#版本回退
git reset
#命令格式
git reset --hard commitID #commitID可以通过 git log 或者 git -log命令查看,已经删除的记录可以通过 git reflog 命令查看
.gitignore文件 用于列出要忽略的文件模式
#示例
# no .a files
*.a
# but do track lib.a, even though you're ignoring .a files above
!lib.a
# only ignore the TODO file in the current directory, not subdir/TODO
/TODO
# ignore all files in the build/ directory build/ # ignore doc/notes.txt, but not doc/server/arch.txt
doc/*.txt
# ignore all .pdf files in the doc/ directory
doc/**/*.pdf
#流程示例
#####################仓库初始化######################
# 创建目录(git_test01)并在目录下打开gitbash
略
# 初始化git仓库
git init
#####################创建文件并提交#####################
# 目录下创建文件 file01.txt
略
# 将修改加入暂存区
git add .
# 将修改提交到本地仓库,提交记录内容为:commit 001
git commit -m 'commit 001'
# 查看日志
git log
####################修改文件并提交######################
# 修改file01的内容为:count=1
略
# 将修改加入暂存区
git add .
# 将修改提交到本地仓库,提交记录内容为:update file01
git commit --m 'update file01'
# 查看日志
git log
# 以精简的方式显示提交记录
git-log
####################将最后一次修改还原##################
# 查看提交记录
git-log
# 找到倒数第2次提交的commitID
略
# 版本回退
git reset --hard commitID
#查看本地分支
git branch
#创建本地分支
git branch [branch_name]
#切换分支
git checkout [branch_name]
#切换分支,如果分支不存在则创建分支
git checkout -b [branch_name]
#合并分支
git merge [branch_name]
#删除分支
git branch -d [branch_name] #检查后删除分支
git branch -D [branch_name] #不检查,强制删除
#分支操作示例
###########################创建并切换到dev01分支,在dev01分支提交
# [master]创建分支dev01
git branch dev01
# [master]切换到dev01
git checkout dev01
# [dev01]创建文件file02.txt
略
# [dev01]将修改加入暂存区并提交到仓库,提交记录内容为:add file02 on dev
git add .
git commit -m 'add file02 on dev'
# [dev01]以精简的方式显示提交记录
git-log
###########################切换到master分支,将dev01合并到master分支
# [dev01]切换到master分支
git checkout master
# [master]合并dev01到master分支
git merge dev01
# [master]以精简的方式显示提交记录
git-log
# [master]查看文件变化(目录下也出现了file02.txt)
略
##########################删除dev01分支
# [master]删除dev01分支
git branch -d dev01
# [master]以精简的方式显示提交记录
git-log
#添加远程仓库
git remote add <远端名称> <仓库路径>
·远端名称,默认是origin,取决于远端服务器设置
·仓库路径,从远端服务器获取此URL(ssh地址)
#示例
git remote add origin git@github.com:ChthollyWn/Test01.git
#查看远程仓库
git remote
#推送到远程仓库
git push [-f] [--set-upstream] [远端名称 [本地分支名][:远端分支名] ]
#如果远程分支名和本地分支名称相同,则可以只写本地分支
git push origin master
#-f 表示强制覆盖
#--set-upstream 推送到远端的同时并且建立起和远端分支的关联关系
git push --set-upstream origin master
#如果当前分支已经和远端分支关联,则可以省略分支名和远端名。
git push #将master分支推送到已关联的远端分支。
#查看本地分支与远程仓库分支关系
git branch -vv
#从远程仓库克隆项目
git clone <仓库路径> [本地目录]
#从远程仓库中抓取和拉取
#抓取指令就是将仓库里的更新都抓取到本地,不会进行合并
#如果不指定远端名称和分支名,则抓取所有分支。
git fetch [remote name] [branch name]
#拉取指令就是将远端仓库的修改拉到本地并自动进行合并,等同于fetch+merge
#如果不指定远端名称和分支名,则抓取所有并更新当前分支。
git pull [remote name] [branch name]
需求实例
1、需求回退。需求变动,代码需要回退到以前的版本,为保证代码在线上可以正常运行,在保留本地改动后需要使用hard全部回退到目标版本,之后需要删除该远程分支,创建新的分支。
PS D:\WorkSpace\idea\xct-support> git log
commit 3d4c227c4982df9dcccaccd0137282c483c54221 (HEAD -> feat_qus_field, origin/feat_qus_field)
Author: Chenzhipeng <2010768120@qq.com>
Date: Mon Nov 14 16:42:00 2022 +0800
暂时弃用question_types字段
commit e8c16b91761fa39cde63c2a520707c674589a842
Author: Chenzhipeng <2010768120@qq.com>
Date: Wed Nov 9 18:37:33 2022 +0800
为题目添加“题目类型”字段,原题目类型字段修改为“录题格式”字段
PS D:\WorkSpace\idea\xct-support> git reset --hard e8c16b91761fa39cde63c2a520707c674589a842
HEAD is now at e8c16b9 为题目添加“题目类型”字段,原题目类型字段修改为“录题格式”字段
PS D:\WorkSpace\idea\xct-support> git branch
feat_qus
* feat_qus_field
master
PS D:\WorkSpace\idea\xct-support> git branch -a
feat_qus
* feat_qus_field
master
remotes/origin/HEAD -> origin/master
remotes/origin/dev
remotes/origin/feat_qus_field
remotes/origin/master
PS D:\WorkSpace\idea\xct-support> git push origin --delete feat_qus_field
To codeup.aliyun.com:incai/bc/xct-support.git
- [deleted] feat_qus_field
PS D:\WorkSpace\idea\xct-support> git branch -a
feat_qus
* feat_qus_field
master
remotes/origin/HEAD -> origin/master
remotes/origin/dev
remotes/origin/master
PS D:\WorkSpace\idea\xct-support> git push origin feat_qus_field
Enumerating objects: 370, done.
Counting objects: 100% (370/370), done.
Delta compression using up to 12 threads
Compressing objects: 100% (249/249), done.
Writing objects: 100% (330/330), 79.22 KiB | 1.68 MiB/s, done.
Total 330 (delta 164), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (164/164), completed with 30 local objects.
To codeup.aliyun.com:incai/bc/xct-support.git
* [new branch] feat_qus_field -> feat_qus_field
Comments 1 条评论
大佬666