git基础知识

Posted APM0X400

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了git基础知识相关的知识,希望对你有一定的参考价值。

git commit --amend -m ""

错误提示

error: failed to push some refs to \'https://github.com/xxx/xxx.git\'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes

**这是因为远程仓库已经修改了,所以要先fetch,后pull
最后才能push**

提交远程仓库出错

src refspec master does not match any
提交远程仓库出错,没有add,commit  

git基本命令

Git global cofig
git config --global user.name "John Doe
git config --global user.email johndoe@example.com
Git init
Git add/commit -m
Git log:历史记录,最近到最远
Git reset –-hard HEAD^  or HEAD~100//回退100
Git reset –hard sha号
有HEAD指针指向头
Git reflog:记录每次命令
Work tree  stagereposity
Git diff HEAD – 文件名  //查看work tree与repo
git diff HEAD -- readme.txt工作区和版本库里面最新版本的区别
Git checkout discard work tree的change  Git checkout – 文件名
Git reset既可以版本回退,也可以把暂存区的改变撤销掉(unstage)
在work tree删除文件,Git rm:从库中删除文件 ,之后要commit,才可以从库中删除
            Git checkout – 文件名恢复从repository

git log --graph命令可以看到分支合并图。
Git remote add origin(名字)
git remote add origin https://github.com/xxx/learngit.git
git push -u origin master //第一次
git push origin master
git clone远程库
master指向最新的提交,再用HEAD指向master
git checkout -b feature1 //建立分支并转换到分支

Git branch 建立分支
Git checkout 分支名字,转到分支
git branch命令会列出所有分支,当前分支前面会标一个*号
git merge dev合并到dev分支 --no-ff参数,表示禁用Fast forward
git branch -d dev 删除分支

git log --graph命令可以看到分支合并图。
Git stash list
git stash pop,回到工作现场,discard stash
git remote –v  //远程信息
git push origin <branch-name>推送自己的修改;
如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to <branch-name> origin/<branch-name>。
git tag <tagname>用于新建一个标签
git show <tagname>查看标签信息:
git tag -a <tagname> -m "blablabla..."可以指定标签信息;
git tag可以查看所有标签。
git tag -d <tagname>可以删除一个本地标签;
•  命令git push origin <tagname>可以推送一个本地标签;
•  命令git push origin --tags可以推送全部未推送过的本地标签;

git push origin :refs/tags/<tagname>可以删除一个远程标签。
Git show HEAD
Git config –list –show-origin
Git diff  work tree和stage的差别
Git diff –staged
.gitignore可以忽略不必要的文件
Blame:last modification on each line of file
Git push –u 出错,control panel/user/credential manager

git 删除commit

git rebase -i HEAD~

顺序是反向的

git clone某分支

git branch -a
git checkout -b bugfix-2.0x origin/bugfix-2.0.x
git pull origins
//
git remote show origin
git checkout --track origin/serverfix  //本地 serverfix追踪远程的 serverfix

git本地/远程分支名修改

git branch -r //列出远程分支
git branch -a//列出所有,包含远程与本地
git branch -v//verbose
git branch -m old_name new_name
git push origin  --delete  origin/old_name  //删除远程分支
 git push origin serverfix //本地 serverfix追踪远程的 serverfix
git pull  -u origin  new_name:newname   new_name追踪远程newname
git remote prune origin //远程已经删除了,但是自己fetch的远程还在,使用prune

git 远程

git remote -v //verbose
git remote add pb https://github.com/paulboone/ticgit //添加远程
git remote show origin //查看远程
git remote remove origin//移除
git remote rename pb paul//重名

git log

git log -p -2 //最后两个commit
git log --stat
git log --pretty=oneline
git log --pretty=format:"%h -- %an--%ar--%s"
git log since=2019.01.01  //自从2019.01.01到现在
git log until=2019.01.01
git log --since=2.weeks/2.months/2.years
git log -S function_name

以上是关于git基础知识的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段15——git命令操作一个完整流程

如何管理在每个 git 版本中添加私有代码片段?

使用 Git 来管理 Xcode 中的代码片段

markdown Git代码片段

GitGit 分支管理 ( 克隆远程分支 | 克隆 master 分支 git clone | 查看远程分支 git branch -a | 克隆远程分支 git checkout -b )(代码片段

GitGit 分支管理 ( 克隆远程分支 | 克隆 master 分支 git clone | 查看远程分支 git branch -a | 克隆远程分支 git checkout -b )(代码片段