git笔记
-
本机错误:fatal: unable to access 'https://github.com/Hfimy/xxx.git/': Failed to connect to www.proxy.com port 8080: Timed out
代理问题
查询当前代理: git config --global http.proxy
取消代理设置: git config --global --unset http.proxy -
命令:
git add .
报错:
an editor opened by 'git commit'. Please make sure all processes
are terminated then try again. If it still fails, a git process
may have crashed in this repository earlier:
原因:通常由于同时有两个进程执行了git
操作,造成了冲突导致git被某个进程锁住了。
解决方法:rm -f .git/index.lock
- 命令:
git pull
报错:
error: Your local changes to the following files would be overwritten
by merge:server/models/lc.json
Please commit your changes or stash them before you merge.
原因:更新下来的内容与本地修改的内容有冲突,先提交你的修改或者将本地修改暂时存储起来
解决方法
-
并入远程仓库的修改,解决冲突合并
git stash
先将本地修改暂存起来,git stash list可以查看暂存信息
git pull
拉取远程代码
git stash pop
还原暂存信息
系统会自动合并修改的内容,但需要手动修改冲突,可使用git diff -w +文件名
确认代码是否自动合并了,然后修改冲突内容 -
将远程仓库的修改完全覆盖本地工作版本
git reset --hard HEAD^
git pull
- 当先创建本地存储库时,与远程仓库(空仓库,没有readme的commit)建立连接
git init
git remote add origin <repository url>
git pull origin master
...add and commit here...
git push -u origin master (使用-u 参数指定origin为默认主机,后面就可以不加参数使用git push)
- 新建gh-pages分支并提交master部分文件
git checkout -b gh-pages //新建gh-pages分支
git branch //查看当前所在分支
git checkout master //切换到主分支
git subtree push --prefix=dist origin gh-pages //将主分支的dist目录下的文件推送到远程gh-pages分支下
git有四个区的概念:
- workspace 工作区
- stage 暂存区
- local repository 本地仓库
- remote repository 远程仓库
5种状态:
- 未修改 origin
- 已修改 modified
- 已暂存 staged
- 已提交 committed
- 已推送 pushed
检查修改:
已修改未暂存 - git diff
已暂存未提交 - git diff --cached
已提交未推送 - git diff master origin/master
撤销修改:
已修改未暂存 - git checkout .
|| git reset --hard
已暂存未提交 - git reset; git checkout .
|| git reset --hard
已提交未推送 - git reset --hard origin/master
已推送 - git reset --hard HEAD^
git 提交代码
列出本地所有分支
git branch
列出远程所有分支
git branch -r
列出所有本地分支和远程分支
git branch -a
创建分支,但仍然停留在当前分支
git branch <branch>
创建分支,并切换到该分支
git checkout -b <branch>
切换到指定分支
git checkout <branch>
合并分支到当前分支
git merge <branch>
删除分支
git branch -d <branch>
删除远程分支
git push origin --delete [branch-name]
git branch -dr [origin/dev]
git checkout <branch> 从master切换到开发分支上
git merge origin master ,拉取远程仓库最新的代码合并进当前分支,(先更新本地的主分支至最新)
git add . ,追踪文件的变化
git commit -am '备注信息', 将代码提交到本地仓库
git push ,本地仓库代码推送到远程仓库,第一次需执行git push --set-upstream origin <branch>来创建远程分支
提交pull request,管理员审核
git status 查看当前状态
git diff 查看具体变化(q退出)
git difftool 查看原来的文件和修改后的文件对比