Idea中使用Git的常用操作

7 篇文章 0 订阅

一、成员A在本地新建项目P并提交到Git仓库
1、在本地创建一个新的项目。
2、创建本地仓库,依次选择 VCS - > Import into Version Control -> Create Git Repository
在这里插入图片描述
这时会出现一个弹窗让选择本地仓库的位置,这里选新建项目P所在的位置,点击ok就完成了本地仓库的创建。
在这里插入图片描述
3、在项目上右键,依次选择 Git -> Add
4、在项目上右键,依次选择 Git -> Commit Directory
5、在项目上右键,依次选择 Git -> Repository -> Push
因为是第一次提交,所以在第5步的push界面点击 Define remote链接选择远程仓库的地址,然后在点push按钮,本地项目就成功上传到Git了。
在这里插入图片描述
二、同一个人,有两个git账号,一个是user1,另一个是user2。之前一直用user1更新和提交代码,现在user1无法使用,在不改动本地仓库和远程仓库代码的前提下,想用user2更新和提交代码。
(1)项目管理员将user2添加到项目成员,并分配和user1一样的角色。
(2)使用user2登陆git,复制项目url
http://user2@git.baidu.net/frame/demo.git
(3)进入项目根目录下,用文本编辑器打开 项目根目录下 的.git 目录下的 config 文件,用上一步复制的项目url替换图片红框中的内容。
在这里插入图片描述
(4)更新代码,发现已经是在用user2用户操作了(考虑到公司保密制度,这里使用了马赛克)
在这里插入图片描述

三、将dev分支merge到master分支

# 检出到dev分支
git checkout dev
# 拉取dev最新代码到当前文件夹
git pull
# 检出到master分支
git checkout master
# 将dev分支合并到master
git merge dev
# 将本地的master分支推送到origin主机
git push -u origin master

四、误将与项目无关的文件/文件夹上传到Git(比如Idea的配置文件),想要删除这些文件。
在这里插入图片描述

# 删除名字为.idea的文件夹和名字为test.iml的单个文件
git rm -r --cached .idea
git rm -r --cached test.iml
git commit -m 'delete idea files'
git push -u origin master

执行完成后,git上名字为.idea的文件夹和名字为test.iml的单个文件就没有了
在这里插入图片描述

五、在不提交当前更改的情况下切换到其他分支
这种情况经常遇到,比如正在dev分支开发新功能,需要解决test分支上的bug,解决完bug再切回dev分支继续开发新功能。
(1)把当前dev分支的内容保存起来

  git stash

(2) 查看是否保存成功

  git stash list

(3)切换到test分支,修改bug并提交
(4)切回dev分支,恢复切换分支前的修改

git stash apply stash@{0}

(5)恢复后,删除保存的修改

 git stash drop stash@{0} 

(6)在dev分支开发完之后,正常提交即可。

六、将代码回退到指定版本

# 查看最近5次的提交记录
git log -5

# 
git reset --hard v12345678
git push -f origin master

七、将dev分支代码合到master分支,执行merge后没有执行push,此时想取消合并
1、查看merge操作的上一个提交记录的版本号 git reflog
2、回滚到merge之前的代码 git reset --hard 版本号

八、将dev分支代码合到master分支后,想取消合并,保留master分支合并前的代码
(1)查看提交历史

git log --oneline --graph

(2)撤回 merge

git reset --merge 1f111bf 

或执行

git reset --merge HEAD^

(3)强制push

git push -u origin master -f

九、将dev分支的部分提交合到master分支,例如dev分支提交了3次,只想将其中2次的提交合并到master分支
1、在dev分支使用git log找到想要复制的commit 的id,记录下来;
2、切换到master分支,使用git cherry-pick [上面记录的commit id] 回车即可!
如果想要复制多个, 使用git cherry-pick (commitid1..commitid100),commitid1为想复制的最老提交(不包括),commitid100为想复制的最新提交(包括)
如果想要包括commitid1,那么在commitid1后加^即可,即 git cherry-pick [commitid1^..commitid100]
3、如果要取消这次cherry-pick,则使用 git cherry-pick --abort
4、git push到远端master分支

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值