反复使用的 git 指令

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管理的。现在要把项目推到另一个远程仓库。

  1. 查看当前的项目远程仓库数:git remote -v (都是有一个fetch 一个push)
  2. 再添加一个远程仓库:git remote add [shortname] [url]
  3. 再查看远程仓库数,会显示出新的远程仓库:git remote -v
  4. 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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值