常用指令
初始化仓库:
git init
添加远程仓库到本地:
git remote add origin https://gitee.com/xxx.git
新建并切换到本地dev分支
git checkout -b dev
本地分支与远程分支相关联
git pull origin dev
标签管理
git tag -l 查看标签
git tag -a v1.0 -m "描述" 创建标签
git show v1.0查看标签信息
git push origin --tags推送全部标签到远程仓库
git push origin v1.0推送指定标签到远程仓库
git checkout v1.0切换到指定标签
git tag -d v1.0删除指定标签
常见问题及解决:
1. warning: LF will be replaced by CRLF in
windows中的换行符为 CRLF, 而在linux下的换行符为LF,所以在执行add . 时出现提示,解决办法:
git config --global core.autocrlf false
2.错误的add后,如何删除已经add的文件:
1.git rm --cached “文件路径”,不删除物理文件,仅将该文件从缓存中删除;
2.git rm --f “文件路径”,不仅将该文件从缓存中删除,还会将物理文件删除
3.git reset HEAD 用版本库内容清空暂存区(谨慎使用)
3.错误的commit后如何删除:
其实就是硬reset到之前对的commit记录然后强行再推送到远程库一下
git reset --hard <commit_id>
git push origin HEAD --force
4.有时候commit后发现注释不太合适需要修改
输入以下命令,进入VIM界面。然后在VIM下面编辑就好
git commit –amend
如果已经将代码push到远程仓库
首先,你把最新的版本从远程仓库先pull下来,修改的方法都如上,最后修改完成后,强制push到远程仓库:
git push --force origin master
注:很重要的一点是,你最好保证在你强制push之前没有人提交代码,如果在你push之前有人提交了新的代码到远程仓库,然后你又强制push,那么会被你的强制更新覆盖!!!
5.修改历史提交代码的注释
修改最后一次提交的信息
git commit --amend
但是对于历史提交呢,就必须使用rebase了。
git rebase -i HEAD~5
如果你要修改哪个,就把那行的pick改成edit,然后保存退出。
这时通过git log你可以发现,git的最后一次提交已经变成你选的那个了,这时再使用:
git commit --amend来对commit进行修改。
修改完了之后,使用 git rebase --continue 回到原来
git 删除某个分支
git branch -D 要删除的分支
git push origin --delete 要删除的分支
6. git pull 失败 ,提示:fatal: refusing to merge unrelated histories
其实这个问题是因为 两个 根本不相干的 git 库, 一个是本地库, 一个是远端库, 然后本地要去推送到远端, 远端觉得这个本地库跟自己不相干, 所以告知无法合并。
可以使用如下代码解决
git pull origin master --allow-unrelated-histories
#后面加上 --allow-unrelated-histories , 把两段不相干的 分支进行强行合并