常用Git命令梳理

2017-04-05  本文已影响0人  iLynn

获取远程分支

git checkout -b local-branchName origin/remote_branchName

本地分支推送到远程

git push --set-upstream origin branchName

删除本地分支

git branch -D branchname

提交代码

git commit -a,然后编辑提交信息

切换分支

git checkout branchname 

查看stash

git stash list

运用stash

git stash pop stash@{number}

删除stash

git stash drop stash@{number}

查看本次改动

git diff 

查看当前状态

git status 

查看当前分支历史提交

git log 

回滚到某次提交的时候

git reset --hard commitID 

更新远程分支列表

git fetch origin --prune

删除未跟踪的文件

git clean -f

连 untracked 的目录也一起删掉

git clean -fd

连 gitignore 的untrack 文件/目录也一起删掉 (慎用,一般这个是用来删掉编译出来的 .o之类的文件用的)

git clean -xfd

在用上述 git clean 前,建议加上 -n 参数来先看看会删掉哪些文件,防止重要文件被误删
git clean -nxfd
git clean -nf
git clean -nfd

将这个文件的改动丢弃

git checkout -- ****/BalancePromotionShareViewController.xib

删除远程分支

git push origin --delete branchName

更新远程分支

git remote update origin --prune

git pull时发生错误

error: cannot lock ref 'refs/remotes/origin/newComerCode': ref refs/remotes/origin/newComerCode is at 5e24d51f75783b5c7fe92151b7cc3729d13d9f82 but expected 96e711592ea8660cd99f04e4fcdfe899a51c53d7
From repositoryName ! 96e7115..e70743b  newComerCode -> origin/newComerCode  (unable to update local ref)

运行:git gc --prune=now 清洗代码仓库,即可成功拉取

安装zsh

git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh
cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc

git push时,总是提示

warning: push.default is unset; its implicit value has changed in
Git 2.0 from 'matching' to 'simple'. To squelch this message
and maintain the traditional behavior, use:

  git config --global push.default matching

To squelch this message and adopt the new behavior now, use:

  git config --global push.default simple

When push.default is set to 'matching', git will push local branches
to the remote branches that already exist with the same name.

Since Git 2.0, Git defaults to the more conservative 'simple'
behavior, which only pushes the current branch to the corresponding
remote branch that 'git pull' uses to update the current branch.

See 'git help config' and search for 'push.default' for further information.
(the 'simple' mode was introduced in Git 1.7.11. Use the similar mode
'current' instead of 'simple' if you sometimes use older versions of Git)

运行:git config --global push.default simple
之后就不会再提示了。

备注:

push.default可用的值 含义
nothing 不推送任何东西并有错误提示,除非明确指定分支引用规格。强制使用分支引用规格来避免可能潜在的错误。
current 推送当前分支到接收端名字相同的分支。
upstream 推送当前分支到上游@{upstream}。这个模式只适用于推送到与拉取数据相同的仓库,比如中央工作仓库流程模式。
simple 在中央仓库工作流程模式下,拒绝推送到上游与本地分支名字不同的分支。也就是只有本地分支名和上游分支名字一致才可以推送,就算是推送到不是拉取数据的远程仓库,只要名字相同也是可以的。在GIT 2.0中,simple将会是push.default的默认值。simple只会推送本地当前分支。
matching 推送本地仓库和远程仓库所有名字相同的分支。这是git当前版本的缺省值。

一般来说我们使用simple就可以进行正常的使用,如果严格一点儿可以用nothing。

上一篇下一篇

猜你喜欢

热点阅读