1.修改git远程仓库地址
1.1 使用vim指令,直接修改.git文件
- 本地 Git 仓库根目录下:cd .git ;
- 编辑 Git 配置文件:vim config ;
- shift + i 进入input 编辑模式 ;
- 修改 [remote "origin"] 下 url 的值 ;
- ESC 输入 x 保存退出即可;
1.2 使用git remote set-url 命令
- 使用git remote查看远程仓库名称origin;
- 使用git remote set-url origin {new_url} 将当前分支设置为工作流.
1.3 使用git remote add命令
- 使用git remote查看远程连接名称origin;
- 使用git remote -rm origin; (删除本地仓库当前关联的远程仓库)
- git remote add origin {new_url}.
2 删除分支
2.1 删除远程分支
git push origin --delete {branch_name};
或者
git push origin :{branch_name} 注意:分支名称前边有空格!!!这个操作相当于推送了一个空的分支覆盖原来的分支
2.2 删除本地分支
git branch --delete {branch_name}
或者:
git branch -D {branch_name}
3 更新远程分支名称
- 更改本地分支名称: git branch -m {oldName} {newName};
- 删除远程分支:git push origin --delete {oldName} || git push origin :{oldName}
- 推送本地分支:git push -u origin {new_name} 或者 git push --set-upstream origin {newName}
4 找回失去的代码
在使用git的过程中经常会有需求会回退到某个分支的某个版本进行重新开发,然后切换到了其他分支,切回分之后发现,之前的操作都不见了,这时候就可以使用git reflog来进行找回.该命令不仅可以找回回退之前的版本,还可以找到回退版本号之后的版本记录,还可以找到已经删除的版本记录.
5. 添加.gitignore
如果在一开始创建项目工程远程仓库时就直接添加.gitignore文件,基本不会出现什么问题;如果在是已经关联了远程仓库的项目中添加.gitignore文件,则会发现此时添加的.gitignore文件并没有生效,本应该被忽略的文件依然被git跟踪.此时需要清理git的文件缓存:
- git rm -r --cached .
- git add .
- git commit -m "add .gitignore"
注意:当然也可以使用 git rm -r --cached 文件/文件夹名字 来清理指定的文件或者文件夹缓存.
6. 修改提交信息
在推送代码之后发现message需要修改(比如有些公司对于message有提交规范,而你恰巧是个新人忘记了这一规范) ,这时候你就需要:
git commit --amend
这样就会进入一个message的编辑模式,编辑完成之后只需要进行保存退出(ESC->wq),然后使用
git push origin {branchName} -f
即可进行原来提交信息的覆盖.当然也可以把以上两条指令合并在一起:
git commit --amend -m "feat() : 新增邮箱校验功能"
可以直接覆盖上一条提交信息.
7. 将改动合并到上一条提交信息中
有时候以为万无一失的代码推送之后发现有Bug, 既想进行代码修改,又不想去改动上次提交的信息,也就是想要把这次的改动合并到上一次的提交信息中,这时候可以使用:
//1. 添加改动 git add . //或者只追踪足了改动的文件 //2 推送改变 git commit --amend --no-edit //3. 将本地改变推送至远程仓库 git push origin {branchName} -f
然后你就会发现,修改已经推送到代码库了,但是message却依旧是原来的message.
8. 合并提交信息
在开发中为了保证代码不会被意外丢死,在一个功能开发过程中可能会出现多次提交,本身并没有什么影响,但是看起来很不简洁,这时候就可以使用
//1. 查看提交记录id git log //2. 获取想要保留的信息ID git rebase -i {commitId}
命令来合并提交信息,其中commitId是你想要保存的提交信息记录的ID.
然后修改需要忽略的信息标识符(pick修改为squash或者drop),例如:
pick e40f011 校验邮箱功能开发完成 pick 1758c81 校验邮箱功能完善 pick 85d9be3 校验邮箱功能测试完成 //squash可以缩写为s, drop可以修改为d,所以可以将上述提交修改为: pick e40f011 校验邮箱功能开发完成 s 1758c81 校验邮箱功能完善 s 85d9be3 校验邮箱功能测试完成
然后在下一步的编辑中,删除或者注释掉想要去掉的注释,保存退出.
然后再使用
git commit --amend -m "feat(): 邮箱校验功能完成"
进行覆盖.
9. 合并当前提交到指定分支
一般情况下每个开发者在自己的分支上完成开发任务,但是有时候需要将当前的改动合并到指定的分支上(例如当前开发中的功能依赖其他开发者分支上的实现或者原始的分支已经发生并行改变等).这时可以使用
//1. 切换到需要合并提交的分支 git checkout `branchName` //2. 合并提交到当前分支 git cherry-pick `commitIDx` `commIDy` `commitIDz`
其中commIDx, commitIDy, commitIDz可以在不同的分支上,也可以在相同的分支上.而且这些提交可以合并到与其他分上,也可以合并到当前分支上(例如当前分支之前提交了一个功能,后来由于某种原因被删除了,突然又想加回来就可以使用这一命令).