缘由:Git使用中遇到了一些问题
- 包括Git普通操作及错误处理
一、Git修改提交代码用户名及邮箱
1. 修改提交代码的用户名以及提交邮箱(使用命令修改git的用户名和提交的邮箱)
- 修改全局命令分别为:
git config --global user.name 你的目标用户名
git config --global user.email 你的目标邮箱名
- 修改当前的 project的命令为:
git config user.name 你的目标用户名
git config user.email 你的目标邮箱名
使用命令修改提交代码的用户名以及提交邮箱,一劳永逸
2. 修改提交代码的用户名以及提交邮箱(修改.git/config文件)
- 进入工程.git文件夹
- vim config, 在config文件末行添加用户名及邮箱
[user]
name = xxx
email = xxx@xxx
二、Git 分支查看与切换/删除
1. 查看所有分支
git branch -a
2. 查看当前使用分支(结果列表中前面标*号的表示当前使用分支)
git branch
3. 创建一个叫做“feature_x”的分支,并切换过去
git checkout -b feature_x
4. 删除分支
git branch -d 分支名
5.切换分支
git checkout 分支名
git checkout 分支名 --
6. 除非你将分支推送到远端仓库,不然该分支就是 不为他人所见的
git push origin <branch>
三、Git合并分支操作及合并错误解决办法
1. 在新建分支上提交代码并提交远程仓库,先新建分支,在新建分支上提交代码到远程仓库
git checkout -b 分支名
git status
git add .
git commit -m 'xxx'
git pull
git push origin 分支名:远程仓库名
可以直接新建分支和远程仓库进行提交,如下例:
git checkout -b test
git push origin test:test
2. 合并两个分支的内容
git checkout 此次提交代码的分支名 --
git status
git add .
git commit -m 'xxx'
git checkout 此次需要合并的分支名
git merge 此次提交代码的分支名
以上就完成了两个分支的合并
3. Git合并分支出现|MERGING,解决办法
- 输入以下命令可以正常跳转回master分支,并取消合并
git reset --hard head
- 正常流程是手动修正合并冲突后, 然后提交修改
git commit -m '修正合并'
git pull
git push
四、Git pull/push错误
1. 解决git push error: failed to push some refs to ... 错误
- 出现错误的原因是github中的README.md文件不在本地代码目录中,也就是说我们需要先将远程代码库中的任何文件先pull到本地代码库中,才能push新的代码到github代码库中。
- 先将远程代码库中的任何文件先pull到本地代码库
git pull --rebase origin master
- 再次进行上传
git push -u origin master
2. Git分支变为master | REBASE 1/1且代码乱码
- 使用git rebase --abort 进行代码回退
git rebase --abort
3. error: failed to push some refs to 'https://xxx.git'解决办法
- 出现原因:git仓库中已经有一部分代码,所以它不允许你直接把你的代码覆盖上去。
- 方法1(强推,即利用强覆盖方式用你本地的代码替代git仓库内的内容)
git push -f
- 方法2(先把git的东西fetch到你本地然后merge后再push)
git fetch
git merge
这2句命令等价于git pull
4. 提示有未提交的更改,无法pull
- 使用 git checkout . 进行未提交代码的回退,然后再执行 git pull 即可成功
git checkout . # 撤销对所有已修改但未提交的文件的修改,但不包括新增的文件
git checkout [filename] # 撤销对指定文件的修改,[filename]为文件名
已经add/ commit 的文件不适用个方法
git reset --hard [commit-hashcode]
[commit-hashcode]是某个 commit 的哈希值,可以用 git log 查看, 以上命令可以回退到任意已经提交过的版本。已经 add / commit 但未 push 的文件也适用
五、git其他普通操作
1. git clone指定tag版本下的代码
git clone --branch tags git地址
例: git clone --branch v1.1.0 https://github.com/xxx-projects/xxx.git
2. git diff查看指定文件修改信息
git diff test
以上命令表示查看test文件的修改信息
3. git log查看工程的git提交记录
git log
4. git commit -m 时提示代码有错误或不规范的地方(一般是启用了代码检查,如eslint)
- 方法1 提交的时候执行git commit --no-verify -m "提交备注" 即可以跳过代码检查,继续进行pull和push
git commit --no-verify -m "忽略代码检查"
git pull
git push
- 方法2 创建编辑 .eslintignore文件
在项目的根目录创建一个.eslintignore文件,该文件里面写取消检测的文件夹或者是文件
例如:取消整个src文件夹下的所有文件的代码检测,就可以在.eslintignore文件写一个src即可
5. 每次git pull 和git push 提示输入账号和密码
- 按要求输入账号密码后执行以下命令,将下次弹框的账号和密码保存起来,永久使用
git config --global credential.helper store
- 如果需要清除该账号和密码,使用如下命令
git config --global credential.helper reset
- 临时存储(默认15min),使用如下命令
git config --global credential.helper cache
6. 生成ssh公钥
ssh-keygen -t rsa -C "xxx@xxx.com"