Git修改已经提交的用户名信息
由于工作或者其他原因,有时候我们会修改git的用户名和邮箱账号,没有改过来就提交,就会导致提交人信息不一致的问题。
现在记录修正回来的方法
如图,这里的提交人信息不是我想要的,需要修改过来
列出需要预览的已经提交的次数,这里我列出5条(因为需要修改的就在这5次之内)
找到你要修改的对应的SHA1 ID,这里我的是 4f12344 和 11400f6 ,如图所示
然后按 i 编辑,把 pick 改成 edit ,按'Esc'退出编辑,按 :wq 保存退出,如图所示
这里的意思是说,你可以使用 git commit --amend 来修改此次提交,修改以后,觉得满意了,执行 git rebase --continue 继续剩下的流程。
由于我们的主要目的是修改提交者的信息,因此光用 git commit --amend 是不够的,我们要使用 git commit --amend --author="作者 <邮箱" --no-edit 这样的操作,这一点是修改提交者信息的关键所在,
如图所示
接着继续执行
如图所示
最后,通过将篡改历史纪录后的结果同步到服务器
最后,在查看提交用户名信息已经修改
Git添加用户名、密码、修改用户名密码
注意: 本地电脑.ssh的公钥id_rsa.pub和私钥id_rsa还是基于自己本地电脑创建的, 然后把自己本地电脑公钥id_rsa.pub添加到自己的gitee或者公司的gitlab上
Git global setup
git config --global user.name undefined
git config --global user.email
Git修改用户名密码
git config --global --replace-all user.name "要修改的用户名"
git config --global --replace-all user.email"要修改的邮箱"
git config --global --replace-all user.password "要修改的密码"
查看修改完后的用户名:git config user.name
查看修改完后的邮箱:git config user.email
查看修改完后的密码:git config user.password
查看用户名、邮箱、密码:
如果是上传在自己的gitee上:修改用户名、邮箱、密码:
如果是上传在公司的gitlab上:修改用户名、邮箱、密码:
最后执行:
上传自己gitee上:
上传公司gitLab上
git push遇到错误: [rejected]master -> master (non-fast-forward)的解决方法
git命令-切换分支
git命令切换分支
Git全局配置
1、查看git的配置列表
我们可以先查看一下git的配置列表:
如果没有配置东西,应该是空的。照着下面配置完成后,你可以再试一下该命令,就会出现一系列配置信息。
2、进行配置
(1)命令行配置
将username和email换成github(或者其它类似远程仓库)的用户名和邮箱。
--global 表示全局的,即当前用户都有效,该配置会出现在 ~/.gitconfig 文件中,~表示当前用户的目录,比如我的是:C:\Users\username.gitconfig
git查看当前用户 如何查看git当前用户
怎样连接git远程仓库,设置用户名和密码
当使用HTTPS协议推送代码到Git仓库时,发现每次都需要输入密码,操作起来非常麻烦。下面介绍几种免去输入密码的方法。
HTTPS协议推送
使用HTTPS协议,有一种简单粗暴的方式是在远程地址中带上密码。
> git remote set-url origin
还有一种方法,是创建文件存储Git用户名和密码。
以Windows环境为例,在%USERPROFILE%目录中(一般为C:\Users\yourname),打开Git Bash命令行,创建文件
> touch .git-credentials
在文件中输入仓库域名,这里使用了。
在CMD终端中设置在全局Git环境中,长期存储密码
> git config --global credential.helper store
其他设置密码方式
记住密码(默认15分钟):git config --global credential.helper cache
自定义存储时间:git config credential.helper 'cache --timeout=3600'
SSH协议推送
如果原来的推送地址协议是HTTPS,可以通过换成SSH协议,在远程仓库添加SSH Key来实现推送时免账户密码输入。
> git remote -v // 查看远程地址
> git remote rm origin // 删除原有的推送地址
> git remote add origin 用户名>/版本库名
或者
> git remote -v
> git remote set-url origin 用户名>/版本库名
执行推送。
> git push -u origin master
发现提示权限不够。
The authenticity of host (104.192.143.1)' can't be established.
RSA key fingerprint is SHA256:zzXQOXSRBEiUtuE8AikJYKwbHaxvSc0ojez9YXaGp1A.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added (RSA) to the list of kn
own hosts.
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
需要在本地创建该帐号的RSA Key。可以参考以下两篇文章:
Windows下配置SSH连接Github
Git如何在本地生成多个SSH key
然后再执行推送。
> git push -u origin master
就可以推送成功了。
Git初始化 暂存区
git --version
git config --global user.name "guoxi.zhang"
git config --global user.email ""
删除Git配置文件中某项值
git config --unset --global user.name
如果拥有系统管理员的权限,你希望注册的别名能被其他用户使用,可以执行如下命令:
sudo git config --system alias.ci commit
也可以只执行如下命令,只在本用户的全局配置中添加Git别名
git config --global alias.ci commit
在git命令输出中开启颜色显示
git config --global color.ui true
git init 命令再当前目录完成版本库的初始化
git init
mkdir demo cd demo git init
相等于 git init demo
运行该命令之后会在demo目录创建一个 .git 的隐藏文件,隐藏的 .git 目录就是Git版本库(又叫仓库,repository)
.git 版本库所在的目录为工作区
在工作区创建一个welcome.txt文件
echo "hello" > welcome.txt
然后将文件条件到版本库中
git add welcome.txt
git commit -m "initialized"
工作区文件内容搜索命令
git grep "工作区文件内容"
在Git工作区的某个子目录下执行操作的时候,会在工作区目录中依次向上递归查找 .git 目录,找到的 .git 目录就是工作区对应的版本库, .git 所在目录就是工作区,在非 .git 工作区执行git命令时会因为找不到 .git 目录报错
显示版本库 .git 目录所在位置
git rev-parse --git-dir
显示工作区根目录
git rev-parse --show-toplevel
相对于工作区根目录的相对目录
git rev-parse --show-prefix
显示从当前目录回退到工作区的根的深度
git rev-parse --show-cdup
打开本项目的配置文件
git config -e
打开当前用户的配置文件
git config -e --global
打开系统的配置文件
git config -e --system
优先级是本项目>当前用户>系统
读取INI文件中某项的值
git config
设置INI文件中某项的值
git config
如果对工作区的文件没有做任何修改,Git默认不会执行提交,使用 --allow-empty 参数允许执行空白提交
git diff 工作区与提交任务(暂存区)中相比的差异
git diff HEAD 工作区和HEAD(当前分支)相比
git diff --cached 或者 git diff --staged 暂存区和版本库文件的差异
git checkout -- welcome.txt 撤销工作区中 welcome.txt 尚未提交的更改
git status git diff 命令扫描工作区变动的原理:先依据 .git/index 文件中记录的(用于跟踪工作区文件的)时间戳,长度等信息判断工作区文件是否改变,如果工作区的时间戳改变了,就说明工作区的文件内容可能被改变了,需要打开文件,读取文件内容,与更改前的原始文件做比较,判断文件内容是否改变。如果判断文件内容没有改变,就将该文件新的时间戳记录到.git/index文件中
文件 .git/index 实际上就是一个包含文件索引的目录树,像是一个虚拟的工作区,在这个虚拟工作区的目录树中,记录了文件名和文件的状态信息(时间戳和文件长度),文件的内容并没有存储在其中,而是保持在Git对象库 .git/objects 目录中,文件索引建立了文件和对象库中对象实体之间的对应关系。下图展示了工作区,版本库的暂存区和版本库之间的关系
git ls-tree -l HEAD 查看当前HEAD指向的目录树
git clean -fd 清空当前工作区中没有加入到版本库的文件和目录
git checkout . 用暂存区内容刷新工作区
git ls-files -s 显示暂存区的目录树
-a 参数会对本地所有的变更的文件执行提交操作,包括对本地修改的文件和删除的文件,但不包括未被版本库跟踪的文件。使用这个命令将失去Git暂存区带来的巨大好处:对提交内容进行控制的能力
Windows下,切换git账号,更改git账号,git提交时设置用户名
由于一些情况,借来一台机器编码,发现git账户是他人的,切换后提交代码,显示的也是他人设定好的名称,略显尴尬。
Windows => 控制面板 => 凭据管理器 => 编辑-重新输入账号密码
修改用户名和邮箱的命令:
gitlab怎么查看用户是否上传代码
打开Github For Windows,点击项目后面的箭头,或者双击项目
进入到项目仓库后,就会在界面右侧看到改动的的代码或者文件,我们在左侧输入此次变动的备注,如下图所示,
点击的“Commit to master”按钮,就会在左侧显示一个“Unsynced Commits”
我们点击右上方的“Sync”按钮,这些软件就会自动上传代码到远程服务器,
上传完毕之后,就会在左侧的“History”里看到刚才上传的版本了
6
为了验证代码是否上传服务器成功,我们可以进入到Github上的项目主页,验证代码是否变动成功
git安装以及配置秘钥
git官网 按照电脑操作系统一直回车下去安装就行
git安装完成后,需要手动配置ssh密钥
配置github的ssh密钥:
1.在桌面上右键,打开git bash查看电脑上是否已经存在SSH密钥:
输入 cd ~/.ssh
2.创建新的ssh key:
输入ssh-keygen-trsa-C ""
执行这条命令会如上图提示文件保存路径,可以直接按Enter,
然后提示输入 passphrase(密码),输入两次(可以不输直接两次Enter),
然后会在 .ssh 目录生产两个文件:id_rsa和id_rsa.pub
3.用记事本打开.ssh目录下的id_rsa.pub文件,复制里面的内容,或者直接执行命令查看:
$ cat ~/.ssh/id_rsa.pub
4、复制ssh key到github:
On the GitHub siteClick “Settings”>Click “SSH and GPG Keys”>Click “New SSH key”
打开github网站,点击右上角扳手图标,然后点击左边菜单的 ssh key, 然后右边页面的 add ssh key,将复制的内容粘贴到github的key中,title可填不填,填好保存即可。
配置user.name和user.email
$ git config --global user.name 'your_name'
$ git config --global user.email
$ git config --global--list查看user信息设置好的user信息
$ git config --list 查看自己的git信息
$ git config --local local只针对某个仓库有效
$ git config --global global对当前用户所有仓库有效
$ git config --system 对系统所有登陆的用户有效
$ git config--list --local
$ git config--list --global
$ git config--list --system
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, website.service08@gmail.com 举报,一经查实,本站将立刻删除。