git

git的基础命令

git clone

git checkout -b develop origin/develop  与远程分支建立跟踪关系

git status 

git add .

git commit -m ""

git push 

也可以用gitlens

gitlens  错误的commit   不想commit  但是不能丢失自己的 修改  

gitlens 再上一个commit resert 头commit  就可以了   需要注意的是  这里的--soft  这个 就会保存自己的修改 如果是 hard就不会了

 

合并分支  git merge <BranchName> --no-ff [-m 'xxx']   在主分支上不会有历史   但是原分支保留历史    第一句可以理解 在dev上 不会有分支的提交记录 但是 第二句 不是很理解我

这时候要注意看 有时候会出现提示信息  让你声明你的身份 name 和email 按照提示 输入即可

git push origin develop 这里可以推送到任意分支  不过一般都是前后对应 下拉某一分支 推送到某一分支(只修改这一分支)

如果checkout已经建立了跟踪关系 这里origin develop是可以省略的 因为前面建立的跟踪关系这里会默认使用

开发的环境中有些东西我们 不想提交 可以修改.gitignore文件 也可以不适用git add .  一个一个文件单独添加(比如一些测试环境 工作的时候测试环境不一样的)

 

 

 

 

 

 

代码恢复 (个人感觉很重要 因为会由于自己或者他人误操作造成自己的努力付之东流  以前我老大也试过但是代码冲突比较多)

总结一下使用 git revert  绝对的安全 不影响每一个版本的代码历史 恢复基本上没有冲突

使用

  

1.先 git log --oneline 展示历史版本  如果使用git log 显示过多 退出的话 按英文状态下的q即可

2.然后 git revert HEAD~数字  这里是撤销的意思  我理解为撤销前几次提交的操作 如果是0

 git revert HEAD~0  意为 撤销最后一次提交之后的操作(恢复到了最后也就是最近一次提交的代码

如果是1  HEAD是当前 1是撤销上一次的修改(撤销了0b6b309的修改) 则回到了46f62b5的那一次修改

然后git status 查看 发生了哪些改变

有冲突的话 修改冲突(我使用的是vscode 自动弹出采用当前更改采用传入的更改选择  因为是代码恢复 直接选择传入更改即可)

当状态变为

可以使用git revert --abort 强行终止撤回  也可以最后修改 然后git add.  git commit -m "" 之后状态也会变回来

出现

输入:wq 回车 即可退出

另一种代码恢复 恢复到某个版本id reset 需要注意的是  恢复此id之后的 版本将被删除

比如 提交了三次修改  git reset id号(第一次的)

这样后面两次的记录会被删除

当出现提示错误的时候(Unstaged changes after reset )

git add .

git reset  --hard

使用这样本地代码恢复了  但是远程代码却不能提交

$ git push -u origin master
To git@github.com:******/Demo.git
 ! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'git@github.com:******/Demo.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Merge the remote changes (e.g. 'git pull')
hint: before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.


网上搜索了下,是因为远程repository和我本地的repository冲突导致的,而我在创建版本库后,在github的版本库页面点击了创建README.md文件的按钮创建了说明文档,但是却没有pull到本地。这样就产生了版本冲突的问题。

有如下几种解决方法:

1.使用强制push的方法:

$ git push -u origin master -f 

这样会使远程修改丢失,一般是不可取的,尤其是多人协作开发的时候。

2 我个人想到的一个办法  先git reset 本地工作目录恢复到需要的代码

  然后在git clone  或者git pull  然后把恢复的代码复制过来  在提交

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值