Git指令回顾

Git指令回顾

由于在Lab1到Lab3的操作中项目的版本结构都比较简单且并不涉及多人协作,实验者基本只使用比较常用的git指令(如:git项目库初始化,绑定github在线库,添加追踪文件,推送到github在线库等),并未对版本结构复杂的项目进行管理。

这里对git的基本指令及较复杂版本管理指令做出回顾整理,一方面用作考试复习参考,一方面方便之后项目过程中回顾参照。

时间原因 口才有限
部分参考与引用:
https://www.jianshu.com/p/cbd5cd504f14
https://zhuanlan.zhihu.com/p/389814854
https://www.ruanyifeng.com/blog/2015/12/git-cheat-sheet.html

廖雪峰官方网站相关


基础:初始化 commit push 配置等

初始化本地git库

git init

先行进行git库上传的用户信息配置

git config user.name 'name'
git config user.email 'email'

可添加--global参数全局生效

取消关联/关联本地仓库到远程仓库

git remote add origin 'Repository URL'
git remote remove origin

将文件添加到暂存区

git add 'File Path'

提交项目到本地仓库

git commit (-m "Message")

将远程主机更新取回本地

git fetch origin

拉取远程分支项目文件到本地

git pull origin master
(报错时:git pull --rebase origin master)

提交本地分支代码到远程分支

git push -u origin masetr:master
将本地master分支项目文件提交到远程库的master分支

也可git push -u origin master

克隆指定分支

克隆仓库获取所有分支再切换至指定分支

克隆仓库而只获取一个分支

git clone --branch <branchname> <remote-repo-url>

or

git clone -b <branchname> <remote-repo-url>

提交比较

显示工作目录和索引的不同

git diff

显示索引和最近一次提交的不同

git diff --cached

显示工作目录和最近一次提交的不同

git diff HEAD

提交日志

显示所有提交

git log

显示某几条提交信息

git log -n <某个数值>

仅显示合并提交

git log --merges

查看该文件每次提交记录

git log <file>

查看每次详细修改内容的diff

git log -p <file>

查看最近两次详细修改内容的diff

git log -p -2

查看提交统计信息

git log --stat

文件重命名/移动

重命名

git mv <fileName1> <fileName2>

移动

git mv <fileName> <Path>

改名文件,并且将这个改名放入暂存区

git mv [file-original] [file-renamed]

强制重命名或移动
这个文件已经存在,将要覆盖掉

git mv -f <myFile> <existingFile>

分支管理

查看本地/远程分支

git branch -a
在项目根目录运行以查看所在项目所有分支及远程分支
删去-a参数查看所有本地分支
使用-r参数查看所有远程分支

创建分支

git branch <newBranch>

重命名分支

git branch -m <oldBranchName> <newBranchName>

删除分支

git branch -d <branchName>

删除远程分支

git push origin --delete <branch-name>
git branch -dr <remote/branch>

编辑分支介绍

git branch <branchName> --edit-description

建立分支追踪关系

git branch --set-upstream <branch> <remote-branch>

切换分支

git checkout -b <newBranch> <origin/newBranch>

第一次创建并切换分支时可运行
newBranch为新创建的本地分支,origin/newBranch是远程分支,在创建本地分支的同时与远程分支建立追踪关系

git checkout <newBranch>

本地已有分支时使用,切换到本地的分支newBranch

git checkout -

切换到上一个分支

前一条命令等效git branch <newBranch>git checkout <newBranch>两条命令

分支合并

img

img

回滚与暂存区使用

重置暂存区的指定文件,与上一次commit保持一致,但工作区不变

git reset [file]

重置暂存区与工作区,与上一次commit保持一致

git reset --hard

重置当前分支的指针为指定commit,同时重置暂存区,但工作区不变

git reset [commit]

重置当前分支的HEAD为指定commit,同时重置暂存区和工作区,与指定commit一致

用于仅在本地的文件记录撤销同步

git reset --hard [commit]

重置当前HEAD为指定commit,但保持暂存区和工作区不变

git reset --keep [commit]

新建一个commit,用来撤销指定commit

后者的所有变化都将被前者抵消,并且应用到当前分支

可用于对远程分支上的记录撤销同步

git revert [commit]

恢复最后一次提交的状态

git revert HEAD

暂时将未提交的变化移除,稍后再移入

git stash
git stash pop

列所有stash

git stash list

恢复暂存的内容

git stash apply

删除暂存区

git stash drop

*commit标签

列出所有tag

git tag

新建一个tag在当前commit

git tag [tag]

新建一个tag在指定commit

git tag [tag] [commit]

删除本地tag

git tag -d [tag]

删除远程tag

git push origin :refs/tags/[tagName]

查看tag信息

git show [tag]

提交指定tag

git push [remote] [tag]

提交所有tag

git push [remote] --tags

新建一个分支,指向某个tag

git checkout -b [branch] [tag]

2024年10月29日新增——提交记录管理

rebase指令可以合并分支

若仅有参数branch1,则将当前分支提交记录C3取出并复制,放在branch1下,同时生成新的提交记录C3'。

此时branch1需要同步C3'。

若同时有参数branch1与branch2,则将branch2的当前分支记录C3取出并复制,放在branch1下,同时生成新的提交记录C3'。

同理,branch1需要同步最新提交记录。

可添加 -i (interactive)参数来实现UI下交互式调整提交记录

git rebase <branch1> <branch2>

简便快速的提取多个提交记录的方法cherry-pick

git cherry-pick <branchname>

效果如图:
img

posted @ 2024-05-11 23:54  2022113415-罗昊然  阅读(42)  评论(0)    收藏  举报