记录git常用命令
git status
git add .
git commit -m 'stash test'
git push
git pull
git stash
git stash list
git stash apply
git branch test
git branch
git checkout test
git merge master
git branch -d testing
git branch -D testing
在Git v1.7.0 之后,可以使用这种语法删除远程分支:
$ git push origin --delete <branchName>
删除tag这么用:
git push origin --delete tag <tagname>
否则,可以使用这种语法,推送一个空分支到远程分支,其实就相当于删除远程分支:
git push origin :<branchName>
这是删除tag的方法,推送一个空tag到远程tag:
git tag -d <tagname>
git push origin :refs/tags/<tagname>
两种语法作用完全相同。
git push origin testing
git branch -a
git fetch
git checkout -b testing origin/testing
git checkout -f origin/testing file...
git checkout -f <commit_version_id>
git remote add origin git@xx.git
git remote set-url origin git@xx.git
有时我们发现添加.gitignore文件后并没有忽略我们想要忽略的文件,解决方法就是清除一下缓存,原因gitignore对已经追踪(track)的文件无效,清除缓存后文件将以未追踪的形式出现.然后再重新添加提交一下,.gitignore文件里的规则就可以起作用了
git rm -r --cached .
git add .
git commit -m 'update .gitignore'
$ git log --oneline -15 --author Frank --before "Fri Sep 18 2015"
git log --stat
问题
fatal: refusing to merge unrelated histories
解决
git pull origin master --allow-unrelated-histories
在本地工作区做了无用的修改后,可以用远程remote的代码强制将覆盖本地代码,操作如下
git fetch –all
git reset –hard origin/master
git fetch 下载远程的库的内容,不做合并。git reset 指令把HEAD指向master最新版本。
修改最后一次提交信息
git rebase -i HEAD~ # ~最后一次 ~~最后2次 ~2最后2次
# 出现vi界面 把pick改为edit
git add .
git rebase --continue
#出现vi界面,可以修改commit消息,保存并退出
挑拣
git cherry-pick 23d9422
回退版本
git reset --hard HEAD^ # 回退一个版本 两个版本 HEAD^^ , 100个 HEAD~100
# 再回到未来的某个版本1094a
git reset --hard 1094a
git config core.sshCommand "ssh -i ~/.ssh/customprivatekey "
或者vim ~/.ssh/config
Host github.com
User git
Hostname github.com
IdentityFile ~/.ssh/id_rsa
git无法pull仓库refusing to merge unrelated histories
从git中永久删除文件以节省空间
发表评论 登录: