海南省建设局网站搜索,高效省心的app定制开发平台,苏州高端网站设计制作,google关键词规划师Git介绍
一、Git常用命令 添加、提交
git add
将文件从工作区添加到暂存区#xff0c;表示git开始追踪文件#xff0c;如果不想让git追踪了#xff0c;可以使用
git rm --cached file 取消文件追踪#xff0c;仅仅只代表追踪取消#xff0c;工作区文件还是照…Git介绍
一、Git常用命令 添加、提交
git add
将文件从工作区添加到暂存区表示git开始追踪文件如果不想让git追踪了可以使用
git rm --cached file 取消文件追踪仅仅只代表追踪取消工作区文件还是照样存在
git mv
重命名文件相当于mv git rm git add如果add以后我再改动了文件想要撤销这次修改就可以使用
git restore file
或者使用
git checkout -- file
回到上一次add以后的状态。注意这里不能直接删除文件注意上述命名和git rm --cached file 的区别前者是取消修改后者是取消追踪如果我想取消add呢就使用git提示的命令
git restore --staged file 注意与上述命令的区别git commit -m message
将暂存区的文件提交到本地库并添加注释加-a可以自动添加到暂存区git commit --amend
修改上一次提交的message删除
删除仓库中所有没有跟踪的文件清除编译生成的临时文件
git clean -i 表示以交互的形式删除文件
git clean -n 查看所有即将被删除的文件
git clean -f 表示强制删除
git clean -d 递归删除目录
历史记录、分支
git log
查看提交历史
--oneline每个提交一行
--graph显示分支结构
--stat显示文件删改信息
-p显示详细的修改内容git reset --hard 版本号
可以将HEAD指针回退到之前的版本号git checkout git switch
切换分支git checkout -b 本地分支 origin/远程分支
将远程仓库里指定的分支拉取到本地并在本地创建一个分支与指定远程仓库分支关联起来。并切换到新建的本地分支中git branch -a -r -v 所有分支远程分支每个分支的最后一次提交git branch --merged 查看哪些分支已经合并到当前分支意味着可以-d删除git branch --no-merged 查看哪些分支没有合并到当前分支此时-d删除会出错除非-D强制删除git branch -vv
可以查看分支跟踪信息以及是否领先、落后git merge 分支test
将test分支合并到当前分支注意这里只会修改当前分支的内容。
比如有test和master两个分支同时修改了txt文件test修改一行master修改第二行虽然人看起来合并结果没有冲突但是git确定不了因此会提示冲突此时人为解决冲突再合并即可。合并完成以后master分支就是同时修改了第一行和第二行的结果而test分支不变。git merge git merge --squash的区别暂存修改
使用场景在dev分支开发的时候需要去hotfix分支解决bug但是不想放弃当前的修改就可以使用git stash保存起来
值得注意的是只有git add进去的文件才能被stash追踪。
git stash git stash save查看堆栈里的修改
git stash show||list应用堆栈中最新的修改且不丢弃
git stash apply应用堆栈中最新的修改且丢弃
git stash pop远程
git remote -v
查看当前所有远程库地址的别名git remote add 别名 远程地址
给远程库地址添加别名git push 别名 分支名
将分支推送到远程地址没有别名也可以填地址但是比较麻烦实际上这个命令的完整命令是
git push 远程主机名 本地分支名:远程分支名如果本地分支名与远程分支名相同则可以省略冒号
git push 远程主机名 本地分支名
比较常见的是
git push origin master
因为一般是git clone下来的然后git默认把远端地址别名取为origin
git pull 远程主机名 远程分支名:本地分支名
git pull 和 git push 命令类似当远程仓库存在改动时为了保证本地和远程同步就要使用git pull
事实上git pull相当于git fetch git mergegit fetch命令格式与git push也类似。
eg: git fetch master:new_feature_branch表示从远程的master分支拉取更新到本地的new_feature_branch分支变基
git rebase -i HEAD~2
背景是当前我有两个commit时间上是ab。然后可以使用该命令将b压缩到a上面。
fixup参数代表squash压缩。如果顺序反了会有错误提示--abort这次rebase即可。git checkout feature
git rebase master
将当前分支feature变基到master分支origin的一些解释 git变基以及更多例子 git fetch的一些解释
二、Git内部原理
git核心组成部分HEAD文件、index文件、objecs目录、refs目录。
HEAD文件指向目前被检出的分支 index文件保存暂存区信息 objects目录存储所有数据内容 refs目录存储指向数据分支、远程仓库和标签等的提交对象的指针
参考知乎动图