1、tag相关
1.1、git 打tag
列出标签
# 在控制台打印出当前仓库的所有标签
$ git tag
#打标签
git tag -a v1.0.6 -m "2016-9-23发布"
#删除标签
git tag -d v1.0.6
#推送标签
git push --tag
1.2、从tag打出分支
#先进入Tag:
git checkout v1.0.9
#查看当前分支:
git branch
#打分支:
git checkout -b v1.0.9+
git branch
## 2 分支branch ### 2.1、查看分支 查看远程分支: git branch -a 查看本地分支: git branch (其中 当前所在分支为绿色)
2.2、新建分支
git branch v1.3
或者
git checkout -b v1.3
git rebase master
2.3、上传分支
git push origin v1.3
2.4、删除分支
#删除本地分支:
git branch -d v1.2.0
#删除远程分支:
git branch -r -d origin/branch-name
使用demo:
把主干的内容往 1.2推
先把本地的往主干推
git checkout v1.2
git pull origin v1.2
git merge master
git push
2.5、关联本地分支与远程分支 直接用git pull git push
git branch --track origin/v1.2
git push origin master
2.6、FAQ
Android studio git 报错 could not read from remote repository
解决办法:
setting –> Version Control –>Git ,In the SSH executable dropdown, choose Native
2.7、错误操作回滚
2.7.1 在master 上不小心 pull 了分支的内容其实是不要的。恢复回去( commit 撤销也是这样子)
git log
#找到要恢复的那个序列号
git reset --hard 序列号
2.7.2 本来要在 分支上开发,却把代码写在了master上,还没有提交:
git stash
#然后切到分支
git chechout v1.4
#再推回出来
git stash pop
2.8、查看本地仓库关联的是哪里的ssh(看remote 的信息)
$ git remote show origin
2.9、Android studio ignore 设置无效
输入清理指令
git rm -r --cached
如果ignore是后写的,比如remote 上已经有了 A 文件,本地的A文件往往是忽略不成功的。此时要先去remote把改文件删除才会生效
2.10、在原有的remote基础上再添加一个 remote url
[参考]:https://git-scm.com/book/zh/v1/Git-%E5%9F%BA%E7%A1%80-%E8%BF%9C%E7%A8%8B%E4%BB%93%E5%BA%93%E7%9A%84%E4%BD%BF%E7%94%A8
有时候会遇到开发完一个项目,项目原来是有自己的git管理的。现在要把项目推到另一个远程仓库。
- 查看当前的项目远程仓库数:git remote -v (都是有一个fetch 一个push)
- 再添加一个远程仓库:git remote add [shortname] [url]
- 再查看远程仓库数,会显示出新的远程仓库:git remote -v
- push 到新的远程仓库:git push shortname master
例子:
# 看远程仓库
xx_mac$ git remote -v
origin git@gitee.com:xx_user/demo1.git (fetch)
origin git@gitee.com:xx_user/demo1.git (push)
#添加一个
xx_mac$ git remote add jiajia git@gitee.com:user_xx/demo__2.git
#再看
xx_mac$ git remote -v
jiajia git@gitee.com:justjump/demo__2.git (fetch)
jiajia git@gitee.com:justjump/demo__2.git (push)
origin git@gitee.com:xx_user/demo1.git (fetch)
origin git@gitee.com:xx_user/demo1.git (push)
#推送到新加的远程仓库
xx_mac$ git push jiajia master
Counting objects: 4350, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2589/2589), done.
Writing objects: 100% (4350/4350), 2.94 MiB | 1.51 MiB/s, done.
Total 4350 (delta 2187), reused 2463 (delta 1113)
remote: Resolving deltas: 100% (2187/2187), done.
remote: Powered By Gitee.com
To gitee.com:justjump/demo__2.git
* [new branch] master -> master
2.11、删除git 关联
去掉git 相关的关联, 其实就是删除隐藏文件夹 .git 里存储的历史而已
rm -rf .git
2.12、把本地工程(不需要保存git log)上传到服务器一个空项目中
引用 : https://www.cnblogs.com/eedc/p/6168430.html
1、(先进入项目文件夹)通过命令 git init 把这个目录变成git可以管理的仓库
git init
2、把文件添加到版本库中,使用命令 git add .添加到暂存区里面去,不要忘记后面的小数点“.”,意为添加文件夹下的所有文件
git add .
3、用命令 git commit告诉Git,把文件提交到仓库。引号内为提交说明
git commit -m 'first commit'
4、关联到远程库
git remote add origin 你的远程库地址
如:
git remote add origin https://github.com/githubusername/demo.git
5、获取远程库与本地同步合并(如果远程库不为空必须做这一步,否则后面的提交会失败)
git pull --rebase origin master
6、把本地库的内容推送到远程,使用 git push命令,实际上是把当前分支master推送到远程。执行此命令后会要求输入用户名、密码,验证通过后即开始上传。
git push -u origin master
7、如果是上传到github的话,要改下,因为github的主干是main 不是master。
git init
git add .
git commit -m "first commit"
git branch -M main
git remote add origin ssh://username@xxx.xxx.xxx/new/repo
git push -u origin main
2.13、把本地工程(保持git log)上传到服务器一个空项目中
1、普通添加远程仓库
#罗列远程仓库
git remote -v
#去掉原来的仓库
git remote rm origin
#添加新仓库
git remote add origin ssh://username@xxx.xxx.xxx/new/repo
2、同步一次代码不然报错
#直接 git pull 提示 :There is no tracking information for the current branch.
git branch --set-upstream-to=origin/master master
#直接 git pull 提示 :fatal: refusing to merge unrelated histories ,认为本地仓库和远程仓库没有什么关联,不给合并
#强行合并
git pull origin master --allow-unrelated-histories
#push
git push -u origin --all
git push -u origin --tags
2.14 本地拉取远端git仓库的一个目录到本地的一个目录
这个链接说的清楚,有效
https://blog.csdn.net/xuchaoxin1375/article/details/120926878
2.15 已经commit 的log,要改邮箱名字或者用户名
gerrit和github 如果用户名和邮箱不和后台设置的一样的话是没法push的。但是有时候本地config的刚还不一致就需要用到这个。
这个链接的blog亲测有效。
http://www.toobug.cn/post/5203.html