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>两条命令
分支合并


回滚与暂存区使用
重置暂存区的指定文件,与上一次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>
效果如图:


浙公网安备 33010602011771号