Git常用指令
全局参数
因为Git是分布式版本控制系统,所以需要填写用户名和邮箱作为一个标识。
git config --global 参数,
有了这个参数,表示这台机器上所有的Git仓库都会使用这个配置,
git config --global user.name "raye"
git config --global user.email "raye@example.com"
git config --global user.password "password"
也可以对某个仓库指定的不同的用户名和邮箱,进入制定仓库,去掉global即可
修改user.name
<1>git bash(替换)
git config --global --replace-all user.name "your user name"
<2> 修改 .gitconfig文件
<3>git config -e
自己选择删除
<4>覆盖
git config --global user.name "example"
删除对应的用户名或邮箱
git config --global --unset-all user.name(user.email)
版本回退
#查看日志
git log
#简洁日志
git log --pretty=oneline
#查看所有版本号
git reflog
#版本回退
<1>git reset --hard HEAD^^^(一个^代表一个版本)
<2>git reset --hard HEAD~199
<3>git reset --hard 版本号
#撤销修改
git checkout --<file>撤销工作区的更改
远程仓库remote
创建ssh key
ssh-keygen -t rsa -C "email@example.com"
一直回车默认or修改sshkey文件位置
分支branch
#创建分支
git checkout dev
#创建并切换分支
git checkout -b dev
#创建远程分支到本地
git checkout -b dev origin/dev
#指定本地dev分支与远程origin/dev分支的链接
git branch --set-upstream dev origin/dev
#合并分支
git merge(合并指定分支到当前分支)
#删除分支
git branch -d name
#bug分支(创建临时分支)
git stash(把当前工作区隐藏)
git checkout master(切换到主分支)
git checkout -b 临时分支
<编辑>
切换到主分支,合并并删除临时分支
再回到之前的分支
git stash list(查看)
<1>git stash apply 恢复后,stash内容并不删除,使用命令git stash drop来删除
<2>git stash pop 恢复的同时把stash内容也删除
pull/push
git push <远程主机名> <本地分支>:<远程分支>
省略本地分支等价于删除远程分支(git push origin :dev)
#删除远程仓库的分支
git push origin --delete dev
同步远程仓库
git pull <远程主机名> <远程分支>:<本地分支>
git pull origin master :my_test
如果省略本地分支,则将自动合并到当前所在分支上
git pull origin master
####
commit
#将暂存区改动提交到本地版本库
git commit -m "edit"
#撤回commit
git reset --soft HEAD^(如果控制台出现More?,则将命令改成 git reset --soft HEAD^^即可)
仅是撤回commit操作,写的代码仍然保留
#参数
–mixed
不删除工作空间改动代码,撤销commit,并且撤销git add . 操作
这个为默认参数,git reset --mixed HEAD^ 和 git reset HEAD^ 效果是一样的。
–soft
不删除工作空间改动代码,撤销commit,不撤销git add .
–hard
删除工作空间改动代码,撤销commit,撤销git add .
注意完成这个操作后,就恢复到了上一次的commit状态。
#修改注释
如果commit注释写错了,只是想改一下注释,只需要:
git commit --amend
#
git 常见问题
- 使用http/https协议每次pull或者push需要输入密码
git config --global credential.helper store 会在本地生成.gitconfig 执行命令: cat ~/.gitconfig, 存在如下内容即代表成功 [credential] helper = store 再输入一次后,无需再输入
- 公司为了安全,3个月强制改密码,此时执行也会出问题
remote: HTTP Basic: Access denied fatal: Authentication failed for 'http://git.aaa.com/aaa/aaa.git/' 解决方法:密码重置 git config --system --unset credential.helper
- goland终端配置git bash
参考 - error: Your local changes to the following files would be overwritten by merge
方法一:丢弃本地改动
注意:丢弃本地文件是危险操作,必须考虑无误后再删除。
如果本地的修改不重要,那么可以直接把本地的的修改丢弃:git checkout .
//丢弃所有本地未提交的修改
有的本地文件是新添加但没有add过的,在git status中的状态是untrack,它们需要通过git clean删除: 首先查看一下有哪些文件将被删除git clean -nxdf
将被删除的文件无误后,执行删除git clean -xdf
也可以一个一个文件的删除,比如删除文件xxxgit clean -f xxx
方法二:暂存到堆栈区:
如果不想丢弃本地文件,可以暂存到堆栈区(stash)
注意:使用git stash
暂存内容后merge
,再git stash pop
,可能报分支冲突,此时可以在本地新建一个分支,在新分支上恢复stash内容
暂存到堆栈区:git stash
查看stash内容git stash list
要用到本地修改时,把stash内容应用到本地分支上:git stash pop
stash中的内容被弹出。如果保存了多个暂存内容,那么弹出顺序是先进后出的(栈)。
如果不想弹出内容,但仍然把stash内容应用到本地分支上:git stash apply
这样stash中的内容不会被弹出。此外,可以手动删除stash中的内容:
>删除指定的一次stash内容,名称可以通过git stash list
获得:git stash drop xxx
>删除所有stash内容git stash clear
- gnutls_handshake() failed: The TLS connection was non-properly terminated.
ubuntu 解决办法apt-get update apt-get install curl