Git常见命令操作
本文由 小茗同学 发表于 2017-03-15 浏览(4138)
最后修改 2019-05-07 标签:git

前言

一向都不太喜欢将简单问题复杂化,git这种东西本来应该是一个工具,所以不应该为了使用这个工具去额外记一大堆命令,但是限于有时候需要在Linux上面进行一些操作,所以还是有必要记住一些常见的git命令。

分支操作

git branch # 查看本地分支
git branch -a # 查看所有分支(包括远程分支)
git branch test # 本地创建test新分支
git push origin test # 推送刚创建的test分支到远程
git checkout test # 切换到本地test分支
git checkout -b dev origin/dev # 切换到远程的dev分支

直接使用用户名密码克隆项目

git clone https://username:password@remote_addr

删除本地还有但远程不存在的分支

需要特别注意的是,git branch -a无法获取最新的远程分支信息(表现出来就是远程已经删除了但是还是显示存在,远程新建了一个分支后也无法查看),想要获取最新分支信息可以使用如下命令:

git remote show origin

结果如下:

$ git remote show origin
* remote origin
  Fetch URL: ssh://xxx.git
  Push  URL: ssh://xxx.git
  HEAD branch: master
  Remote branches:
	dev								  tracked
	master							   tracked
	product							  tracked
	refs/remotes/origin/test_huadao	  stale (use 'git remote prune' to remove)
	refs/remotes/origin/test_lp		  stale (use 'git remote prune' to remove)
	refs/remotes/origin/test_qrq		 stale (use 'git remote prune' to remove)
	test_jxl_gjj						 tracked
  Local branches configured for 'git pull':
	dev	  merges with remote dev
	master   merges with remote master
	test_qrq merges with remote test_qrq
  Local refs configured for 'git push':
	dev		  pushes to dev		  (local out of date)
	master	   pushes to master	   (up to date)
	test_jxl_gjj pushes to test_jxl_gjj (up to date)

此时可以执行命令git remote prune origin来删除这些过时的分支,注意,只需要执行一次就可以把所有过时的分支都删掉,执行完之后无论是用git branch -a还是用git remote show origin查看,都可以发现这些没用的分支已经不存在了。

拉取分支问题

正常情况下,无论当前处于什么分支,git pull一下就会更新remote的分支信息,但是今天却怪了,明明远程有这个分支,但是pull后就是看不到,这时git fetch一下却可以了。只能说这是一个灵异事件,非必现,记录这里以防备用。