Git 常用命令
2023-05-22 17:45:17 26 举报
AI智能生成
Git 常用命令
作者其他创作
大纲/内容
创建版本库
1、创建目录:mkdir demo-git
2、进入该目录:cd demo-git,执行:git init,初始化一个Git仓库
3、在该目录下,存在.git文件则创建成功,可用命令查看:ls -ah,因为该文件可能是隐藏的
4、新增任意文件于该目录下,例如readme.txt,执行:git add readme.txt,以便于提交到暂存区
5、使用命令:git commit -m "add a readme file",以便于提交到本地仓库
-m 后面追加的是此次提交内容的说明,可根据需要自定义
-m 后面追加的是此次提交内容的说明,可根据需要自定义
历史更改
(HEAD指向的即为当前版本,HEAD 可理解为指针)
(HEAD指向的即为当前版本,HEAD 可理解为指针)
基础概念
工作区(Working Directory):就是在电脑里能看到的目录,例如 demo-git这个目录
版本库(Repository):工作区的隐藏目录.git
暂存区(stage或index)
分支(例如master)
指针 HEAD(用于指向当前分支)
基础命令
1、查看仓库当前的状态,以便于知道当前仓库增删改的文件列表:git status
2、查看指定文件的前后修改对比:git diff readme.txt
3、查看从最近到最远的提交日志,可查看commit id:git log
git log --pretty=oneline可以更直观的查看
git log --pretty=oneline可以更直观的查看
4、查看历史操作指令,可查看commit id:git reflog
管理修改
git跟踪管理的是修改,并非文件
撤销修改
checkout
1、指定文件恢复到最近一次git commit或git add时的状态:git checkout -- <file full name>
reset
1、丢弃暂存区的修改,重新放回工作区,会将暂存区的内容和本地已提交的内容全部恢复到未暂存的状态,不影响原来本地文件
(相当于撤销git add 操作,不影响上一次commit后对本地文件的修改) (包括对文件的操作,如添加文件、删除文件):
git reset HEAD <file full name>
其中,HEAD表示最新的版本
(相当于撤销git add 操作,不影响上一次commit后对本地文件的修改) (包括对文件的操作,如添加文件、删除文件):
git reset HEAD <file full name>
其中,HEAD表示最新的版本
2、清空暂存区,将已提交的内容的版本恢复到本地,本地的文件也将被恢复的版本替换
(恢复到上一次commit后的状态,上一次commit后的修改也丢弃)
git reset --hard HEAD
(恢复到上一次commit后的状态,上一次commit后的修改也丢弃)
git reset --hard HEAD
3、回退到指定提交:git reset --hard <commit id>
restore
1、将暂存区的修改重新放回工作区(包括对文件自身的操作,如添加文件、删除文件):git restore --staged <file full name>
2、丢弃工作区的修改(不包括对文件自身的操作,如添加文件、删除文件):git restore <file full name>
删除文件
先使用 git rm <file full name>
再使用 git commit -m "remove a some file"
再使用 git commit -m "remove a some file"
远程仓库
关联远程仓库
先使用 git remote add origin <your remote repository url>
再使用 git push -u origin "master" 推送本地master分支到远程master分支
再使用 git push -u origin "master" 推送本地master分支到远程master分支
克隆远程仓库
命令:git clone <your remote repository url>
分支管理
创建分支
查看当前仓库分支列表信息:git branch
创建分支:git branch <branch name>
切换分支:git checkout <branch name> 或者 git switch <branch name>
创建分支并切换到该新建分支:git checkout -b <branch name> 或者 git switch -c <branch name>
合并分支
在当前master分支合并dev分支的内容:git merge dev
删除分支
命令:git branch -d <branch name>
如果提示该分支存在没有完全合并合并,参数 -d 调整为 -D
如果提示该分支存在没有完全合并合并,参数 -d 调整为 -D
解决冲突
把Git合并失败的文件手动编辑为期望的内容,再提交
查看分支合并图:git log --graph
BUG 修复
如果本地有修改,但是未全部完成不能提交。
此时需要紧急修复问题时,可以把本地修改内容暂时隐藏,待问题处理好可恢复。
此时需要紧急修复问题时,可以把本地修改内容暂时隐藏,待问题处理好可恢复。
1、隐藏本地修改内容:git stash
2、查询本地隐藏记录清单:git stash list
3、恢复指定暂存内容,但不删除暂存记录:git stash apply stash@{0}
其中:stash@{0}为最新的暂存记录,可以有多个暂存记录,编号从 0 开始递增
其中:stash@{0}为最新的暂存记录,可以有多个暂存记录,编号从 0 开始递增
4、恢复指定暂存内容,并且删除暂存记录:git stash pop stash@{0}
其中:stash@{0}为最新的暂存记录,可以有多个暂存记录,编号从 0 开始递增
其中:stash@{0}为最新的暂存记录,可以有多个暂存记录,编号从 0 开始递增
5、把master分支提交的 BUG 修改,合并到 dev 分支,可以使用命令:git cherry-pick <commit id>
远程分支
查看远程分支
1、查看远程库的信息:git remote
2、查看远程库的详细信息:git remote -v
建立本地和远程分支的关联
1、在本地创建和远程分支对应的分支:git checkout -b <branch name> origin/<branch name>
强烈建议:本地和远程分支的名称最好一致
强烈建议:本地和远程分支的名称最好一致
2、建立本地分支和远程分支的关联:git branch --set-upstream <branch name> origin/<branch name>
3、将本地分支与远程同名分支相关联:git push -u origin <local branch name>
从远程分支拉取
1、将远程指定分支拉取到本地指定分支上:git pull origin <remote branch name>:<local branch name>
2、将远程指定分支拉取到本地当前分支上:git pull origin <remote branch name>
3、将与本地当前分支同名的远程分支拉取到本地当前分支上:git pull
推送到远程分支
1、将本地当前分支 推送到 远程指定分支上(注意:pull是远程在前本地在后,push相反):git push origin <local branch name>:<remote branch name>
2、将本地当前分支 推送到 与本地当前分支同名的远程分支上(注意:pull是远程在前本地在后,push相反):git push origin <local branch name>
3、将本地当前分支 推送到 与本地当前分支同名的远程分支上:git push
tag 标签管理
(总是和某个commit关联)
(总是和某个commit关联)
创建标签
1、切换到指定分支:git switch master
2、基于当前分支最新提交新建标签:git tag <tag name>
即,基于 HEAD 创建
即,基于 HEAD 创建
3、基于指定 commit id 新建标签:git tag <tag name> <commit id>
4、最完整创建标签命令:git tag -a <tag name> -m "<tag description>" <commit id>
-a:指定标签名
-m:指定标签说明
-a:指定标签名
-m:指定标签说明
查看标签
1、按字母排序查看:git tag
2、查看指定标签信息:git show <tag name>
推送标签到远程仓库
1、推送指定标签:git push origin <tag name>
2、推送全部本地未推送的标签:git push origin --tags
删除标签
1、删除本地标签:git tag -d <tag name>
2、删除远程仓库标签:
- 先本地删除指定标签:git tag -d <tag name>
- 再远程删除指定标签:git push origin :refs/tags/<tag name>
0 条评论
下一页