A-A+

git相关操作

2019年09月03日 工具 暂无评论 阅读 18 次

git相关操作

mac中webstorm升级后不能记录git账号密码(MAC记住 git的用户名密码)

解决方案:用钥匙串去更改用户名和密码

第一步:找到你的钥匙串的位置

应用程序----实用工具-----双击钥匙串----右上角搜索git------双击登陆-----点击显示密码-----输入两次你的开机密码-----然后更改xxx用户名就可以了。

MAC记住 git的用户名密码

git 添加tag

  1. 在Git中打标签非常简单,首先,切换到需要打标签的分支上:$ git branch
  2. 然后,敲命令git tag <name>就可以打一个新标签:$ git tag v1.0
  3. 可以用命令git tag查看所有标签:
  4. 默认标签是打在最新提交的commit上的。有时候,如果忘了打标签,比如,现在已经是周五了,但应该在周一打的标签没有打,怎么办?
    方法是找到历史提交的commit id,然后打上就可以了:
  5. 比方说要对url update这次提交打标签,它对应的commit id是471fd27,敲入命令:
    $ git tag v0.9 471fd27
    1、创建带有说明的标签,用-a指定标签名,-m指定说明文字:$ git tag -a v0.1 -m &quot;version 0.1 released push url&quot; d5a65e9
  6. 再用命令git tag查看标签:$ git tag
  7. push单个tag,命令格式为:
git push origin [tagname]
$ git push origin tag_20170908

2.push所有tag,命令格式为:

git push [origin] --tags
git push --tags
或
git push origin --tags

通过标签恢复代码

  1. 查看本地所有标签$ git tag
  2. 查看某个标签的详细信息 $ git show v0.1
  3. 版本回退(将主干分支回退到某个版本) git reset --hard d5a65e

git tag创建、远程推送、回退以及强推push -f

代码合并冲突解决

  1. “git status”
  2. 可以使用git mergetool 命令来调用这个工具。

如何撤销一个合并

你应该始终牢记,你可以在任何时间执行撤销操作,并返回到你开始合并之前的状态。要对自己有信心,你不会破坏项目中的任何东西。只要在命令行界面中键入 git merge --abort 命令,你的合并操作就会被安全的撤销。

当你解决完冲突,并且在合并完成后发现一个错误,你仍然还是有机会来简单地撤销它。你只须要键入 git reset --hard 命令,系统就会回滚到那个合并开始前的状态,然后重新开始吧!

git 每次clone/pull/push码云都要输入密码的解决方案

进入项目目录,输入:

git config --global credential.helper store

提交了一个更新,如何撤销 add

git reset XX

Git撤销 git commit 但是未git push的修改

找到上次git commit的 id

git reset --soft HEAD^

这样就成功的撤销了你的commit

注意,仅仅是撤回commit操作,您写的代码仍然保留。

说一下个人理解:
HEAD^的意思是上一个版本,也可以写成HEAD~1

如果你进行了2次commit,想都撤回,可以使用HEAD~2

至于这几个参数:
--mixed 
意思是:不删除工作空间改动代码,撤销commit,并且撤销git add . 操作
这个为默认参数,git reset --mixed HEAD^ 和 git reset HEAD^ 效果是一样的。

--soft  
不删除工作空间改动代码,撤销commit,不撤销git add . 

--hard
删除工作空间改动代码,撤销commit,撤销git add . 

注意完成这个操作后,就恢复到了上一次的commit状态。

顺便说一下,如果commit注释写错了,只是想改一下注释,只需要:
git commit --amend

此时会进入默认vim编辑器,修改注释完毕后保存就好了。

撤销 到远端的commit

先在本地回退到相应的版本:

git reset --hard &lt;版本号>
// 注意使用 --hard 参数会抛弃当前工作区的修改
// 使用 --soft 参数的话会回退到之前的版本,但是保留当前工作区的修改,可以重新提交

如果此时使用命令:

git push origin &lt;分支名>

会提示本地的版本落后于远端的版本;

On branch master
Your branch is behind 'origin/master' by 3 commits, and can be fast-forwarded.
  (use "git pull" to update your local branch)
nothing to commit, working tree clean
bogon:testTest allin$ git push origin master
To http://192.168.1.78/wangning/testTest.git
 ! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to 'http://192.168.1.78/wangning/testTest.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

为了覆盖掉远端的版本信息,使远端的仓库也回退到相应的版本,需要加上参数--force

git push origin &lt;分支名> --force

  1. 分支合并后,如何撤销
方法一,reset 到 merge 前的版本,然后再重做接下来的操作,要求每个合作者都晓得怎么将本地的 HEAD 都回滚回去:

$ git checkout 【行merge操作时所在的分支】
$ git reset --hard 【merge前的版本号】

https://segmentfault.com/q/1010000000140446

  1. --rebase 作用

  2. git status -s -s的作用是什么 有些提示 MADU

使用git克隆指定分支的代码

使用Git下载指定分支命令为:

git clone -b 分支名仓库地址

使用Git下载v.2.8.1分支代码,使用命令:

git clone -b v2.8.1 https://git.oschina.net/oschina/android-app.git

Linux下 保存 git账号密码

  • 在~/下, touch创建文件 .git-credentials, 用vim编辑此文件,输入内容格式:
touch .git-credentials
vim .git-credentials
  • 在里面按“i”然后输入:

https://{username}:{password}@github.com

比如 https://account:password@github.com

在终端下执行

git config --global credential.helper store

可以看到~/.gitconfig文件,会多了一项:(没出现呢)

[credential] 
helper = store
  • 删除保存的密码:

1、删除保存的密码

git credential-osxkeychain erase

or:

printf &quot;protocol=https\nhost=github.com\n&quot; | git credential-osxkeychain erase

2、删除密码文件

rm ~/.git-credentials

gitlab配置ssh密钥及简单使用

服务器安装 git ssh 不用每一次都输入密码

Linux下 保存 git账号密码
在~/下, touch创建文件 .git-credentials, 用vim编辑此文件,输入内容格式:
touch .git-credentials
vim .git-credentials
在里面按“i”然后输入:
https://{username}:{password}@github.com

比如 https://account:password@github.com

在终端下执行

git config --global credential.helper store

可以看到~/.gitconfig文件,会多了一项:(没出现呢)

[credential]
helper = store

##参考资料

learngitbranching.js.org

准备更换git托管,如何迁移原git仓库

如果你想从别的 Git 托管服务那里复制一份源代码到新的 Git 托管服务器上的话,可以通过以下步骤来操作。

1). 从原地址克隆一份裸版本库,比如原本托管于 GitHub。

git clone --bare git://github.com/username/project.git
2). 然后到新的 Git 服务器上创建一个新项目,比如 GitCafe。

3). 以镜像推送的方式上传代码到 GitCafe 服务器上。

cd project.git

git push --mirror git@gitcafe.com/username/newproject.git
4). 删除本地代码

cd ..

rm -rf project.git
5). 到新服务器 GitCafe 上找到 Clone 地址,直接 Clone 到本地就可以了。

git clone git@gitcafe.com/username/newproject.git
这种方式可以保留原版本库中的所有内容。

问题:

  1. Gitlab强制推送提示"You are not allowed to force push code to a protected branch on this project." #11
  2. https://github.com/LeachZhou/blog/issues/11
标签:

给我留言

Copyright © web前端技术开发个人博客 保留所有权利.   Theme  Ality

用户登录