目录
前言
git有很多操作并且命令很多,本文总结了常用的git操作情况以便使用git遇到问题时快速查询解决
一、删除文件夹
例1:删除.idea文件夹:
$ git --help # 帮助命令
$ git pull origin master # 将远程仓库里面的项目拉下
$ dir # 查看有哪些文件
$ git rm -r --cached .idea # 删除.idea文件夹
$ git commit -m '删除.idea' # 提交,添加操作说明
$ git push -u origin master # 将本次更改更新到github项目master分支
例2:删除项目servic 文件夹下build文件夹及其中所有文件:
$ git rm -r --cached servic/build # 删除servic下的build 文件夹
$ git commit -m '删除build ' # 提交,添加操作说明
$ git push -u origin master # 将本次更改更新到github项目master分支
二、删除文件
例:删除项目跟目录下的文件mvnw.cmd:
$ git rm -f --cached mvnw.cmd # 删除mvnw.cmd文件
$ git commit -m '删除mvnw ' # 提交,添加操作说明
$ git push -u origin master # 将本次更改更新到github项目master分支
三、修改文件夹名
例:将文件夹名称:game 修改为: gamesdk
$ git mv game gamesdk #修改文件名
$ git commit -m 'rename dir game to gamesdk' #提交,添加操作说明
$ git push origin dev # 推送到dev 分支
四、忽略文件
忽略某一文件,比如当我们要add时发现编译器产生了一些文件可以通过以下命令忽略
例:
$ git update-index --assume-unchanged logs/*.log # 忽略logs文件夹下所有log后缀结尾的文件
五、版本回退
1.git版本回退到上一版本
例:
$ git log # 查看最近修改提交记录
$ git reset --hard HEAD^ #回退到上个版本
2…git版本回退到某一版本:
例:
$ git log # 查看最近修改提交记录
$ git reset --hard A #回退到上个版本,A为想要回滚的版本号
$ git reset A #将A移到最新的版本
六、查看某一次提交了哪些文件
例:
$ git log # 查看最近修改提交记录
$ git show A --stat #回退到上个版本,A为想要查看的版本号
七、查看某一文件的提交历史记录
$ git log filename
八、查看某人的历史提交记录
如查看xiaoming的提交记录
例:
$ git log --author="xiaoming"
九、本地代码文件还原
如果你修改了A.java文件,还没有commit和push,此时如果你想还原A.java文件的修改可如下操作:
$ git checkout A.java # 还原A.java文件的修改
十、暂存区里的文件移出暂存区
git将add到暂存区里的文件移出暂存区,即有时候你add的时候加错了文件到缓存区可如下将文件移出缓存区:
$ git rm --cache B.java # 将B.java文件移出缓存区,代码修改不会被还原
如果某一目录下的多个文件都被错误的加入了缓存区可如下将目录下所有文件移出缓存区:
$ git rm --cache -r mbos-portal/webContent/.history/ # 将文件夹下的文件批量移出缓存区,mbos-portal/webContent/.history/ 是文件夹名
十一、本地分支关联远程分支
13.将本地建立的develop分支关联到远程dev分支
$ git branch --set-upstream-to develop dev # 在develop 下将本地develop 关联dev 分支
$ git push -u origin dev develop #提交
十二、创建分支
创建dev分支:
$ git branch dev
十三、分支切换
1.创建panda分支并切换到panda分支:
$ git checkout -b panda #创建并切换
$ git push --set-upstream origin panda #创建的panda 分支提交到远程
2.切换到master分支:
$ git checkout master
十四、查看所有分支
$ git branch -a
十五、查看当前所在分支
$ git branch
十六、删除本地的分支
删除本地的dev分支:
$ git branch -d dev
十七、删除远程的分支
删除远程的dev分支:
$ git push origin --delete dev
十八、分支合并
1.dev分支合并到master分支:
如果我们在dev上开发了代码,要把dev的代码合并到master上:
$ git checkout master #先切换到master分支
$ git merge dev #将dev分支代码合并到当前分支
$ git commit -m "合并分支" # 提交,添加操作说明
$ git push -u origin master # 将本次更改更新到master分支
2.如果是idea上可如下图形化操作来分支合并:
(1)在dev分支上拉取最新代码
(2)切换到master分支
(3)点击dev选择将dev合并到master分支
(4)如果有冲突解决冲突的文件
(5)Terminal 命令行输入 git push 提交推送到远程分支
十九、文件对比
(1).如果修改了多个文件,并且多个文件都没有使用git add加入到缓存区,那么可以使用git diff命令,会列出这些文件所有修改的地方
git diff
(2).如果某文件没有使用git add加入到缓存区,那么可以使用git diff 命令,列出指定文件所有修改的地方
git diff demo/Test.java
(3).比较某次提交和工作区的demo/Test.java文件的不同。XXXX是版本号
git diff XXXX demo/Test.java
(4).如果多个文件已经使用了git add加入到了缓存区,使用下面的命令会列出这些文件所有修改的地方
git diff --cached
(5).如果某个文件已经使用了git add加入到了缓存区,使用下面的命令会列出该文件所有修改的地方
git diff --cached demo/Test.java
(6).查看当前工作区内容与XXXX版本号的所有文件内容的差异
git diff XXXX #XXXX是版本号
(7).比较两个版本号所有文件差异
git diff XXXX1 XXXX2 #XXXX1和XXXX2是版本号
二十、cherry-pick操作
dev分支上依次有A、B、C、D 4次提交,每次提交了许多改动的文件,现在需要将B、D两次提交的改动也同步到master分支:
$ git checkout master #先切换到master分支
$ git cherry-pick XXXX #XXXX是B的版本号
$ git cherry-pick XXXX #XXXX是D的版本号
#xxx是版本号,如:git cherry-pick 7c8afdf6
如果没有冲突会自动的提交到master分支,有冲突则手动解决冲突再手动提交
二十一、切换到指定tag分支
一个项目不仅会有多个分支,还可能会有多个tag
当clone一个项目后,如果想切换到指定tag可以如下操作:
(1).查看所有的tag名称
git tag -l
(2).新建一个分支该分支使用指定tag。
假如新建一个dev2分支,该分支采用1.1.0代码
git checkout tags/dev2 -b 1.1.0
(3).切换到指定tag。假如要切换到1.1.0的tag
git checkout tags/1.1.0
二十二、代码暂存
如果本地代码没开发完成,这个时候去拉取最新的代码可能会有冲突;或者本地代码没开发完,此时要切换分支可以使用暂存功能。
git stash
这样本地的所有修改就都被暂时存储起来了包括git add加到缓存区里的代码 。其中 stash@{0} 就是刚才保存的标记。后续可以通过此标记访问。
当你拉取更新了代码后,可以通过如下操作还原暂存的内容:
git stash pop stash@{0}
如果暂存区不用了可以删除暂存区:
git stash drop stash@{0}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/80377.html