《学习笔记》-Git

Chtholly 发布于 2022-08-19 981 次阅读


常用命令

#在文件目录中执行,用于创建本地仓库
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
此作者没有提供个人介绍。
最后更新于 2022-11-16