赞
踩
本地文件–add->缓冲区(stage)–commit–>本地仓库(本地分支)–push–>远程仓库
(1)git ls-files 查看缓冲区内有哪些文件;
git add 是将本地文件存到缓冲区;
git restore --staged 是将缓冲区文件撤出缓冲区;
git resore 将不在暂存区的文件撤销更改;
(2)git status 用于查看在你上次提交之后是否有对文件进行再次修改;
会显示文件有如下几种状态:
Changes to be committed 当前文件已经在缓冲区,可以提交到本地仓库
Changes not staged for commit: 当前文件不在缓冲区;通常修改或增加本地某些文件后,stage是不知道这些改变的,所以要先git add将修改的文件添加到stage,然后再commit到本地仓库。
Untracked files: 未被监控的文件,就是必须把某些文件放到Git工作目录中,但又不能提交它们,比如保存了数据库密码的配置文件
一个常用的操作:
我们在给项目增加、修改和删除文件后,可以先使用git status查看文件状态,然后可以使用git add命令去添加文件到缓冲区。
git add xx命令可以将xx 文件添加 到暂存区,如果有很多改动可以通过 git add -A . 来一次 添加所有 改变的 文件,注意-A选项后面还有一个句点。 git add -A表示 添加所有 内容, git add . 表示 添加新文件 和编辑过的 文件 不包括删除的 文件; git add -u表示 添加 编辑或者删除的 文件 ,不包括 新添加 的 文件 。
(3)git push 时可能要考虑的问题
(3.1)我对本地文件进行了修改,此时只是add到缓冲区,还没有commit到本地仓库,此时我考虑到远程仓库,我不打算用本地的修改,想直接用远程仓库的文件覆盖本地的修改。
git fetch
git reset --hard HEAD
git merge origin/$CURRENT_BRANCH
$CURRENT_BRANCH 这个值的选择,可以先观察本地分支和远程哪个分支相关联,git branch -a,然后进行选择;
说明:
git reset 命令是用来回退本地仓库的版本的,当每次执行git commit都会有一个新的本地仓库版本,有时就需要回退版本;
–soft “HEAD” 用于回退到某个版本
–hard “HEAD” 撤销工作区中所有未提交的修改内容,将暂存区与工作区都回到上一次版本,并删除之前的所有信息提交
(3.2)本地修改了,远程也修改了,用本地的覆盖远程的
解决方案:
直接强推,git push -f origin master
(3.3)git push 时,有冲突(可参考:https://blog.csdn.net/Jeffxu_lib/article/details/115210292)
解决方案:(此时,修改过的文件已经commit了,想要执行git push,发生错误)
首先,git fetch origin master 取回远程分支master的更新
然后,git merge origin/master 将当前本地分支与取回的修改过的远程master合并
在修改完,merge之后的文件后,重新add、commit,最后 git push origin master
(1)OpenSSL SSL_read: Connection was reset, errno
参考:https://www.cnblogs.com/fairylyl/p/15059437.html
解决:git config --global http.sslVerify “false”
(2)fatal: unable to access ‘https://github.com/…/.git’: Could not resolve host: github.com
参考:https://blog.csdn.net/qq_38415505/article/details/83687207
解决:
git config --global --unset http.proxy
git config --global --unset https.proxy
以Readme.md文件为例,说明使用pycharm解决冲突
此时冲突解决,需要再次commit和push,(猜测:默认在下方的列表中,就是已经add了)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。