Git常用命令

Git 使用

1、克隆远程仓库

git clone // 加仓库的地址

2、本地仓库代码推送到远程仓库,需要先关联远程仓库

git remote add origin // + 仓库地址

3、每一次提交添加

git add . // 提交所有,后面的点。代表所有本次新加的

4、添加提交的说明,注释 / 说明。就是本次提交修改的类容的缩写,比如:

git commit -m "修改首页" // 在 git 上显示的就是修改首页。英文的双引号可以省略。
提交。

5、提交

git push // 提交到默认分支、或你现在切换的分支。
git push origin master // 提交到 master 分支。加上 origin 就是指定提交的分支。

6、如果是新项目刚关联远程仓库那就先强推一次代码

git push -u origin master -f //master 是分支名称

7、查看当前分支

git branch

8、查看仓库状态

git status

9、切换分支

git checkout // + 需要切换的分支名

10、新建分支并且切换到新的分支(把当前分支里面的东西都合并到你刚新建的分支里面)

git checkout -b Test // Test 为新分支

11、合并分支

git merge  // + 分支名。(在需要合并的分支上敲。在没写好的上面,合并写好的)

12、Git 返回之前版本(版本回退)

git reset --hard {hash}

Git 常见的问题解决方法

(1) 更新代码后显示: unable to unlink old ‘xxx/xxx/xx’ : invalid argument
问题原因:
要提交或更新的文件被系统线程占用
解决方法:
把相关服务暂停,重新 pull 代码
(2) 更新代码后显示: the following untracked working tree files would be overwritten by checkout
问题原因:
本地代码仓库目录下有 untracked 文件
解决方法:
如果没有需要上库的代码,直接执行 git clean -d -fx 删除 untracked 文件
(3) 更新代码后显示:
your local changes to the following files would be overwritten by merge…
please move or remove them before you merge

问题原因:
新修改的代码之前未提交,可能被服务器上的代码覆盖
解决方法 1:
保留本地修改,然后 add/commit/push 到远程仓库
git stash // 暂存本地修改
git pull origin master // 拉取服务器最新代码
git stash pop // 暂存代码恢复
解决方法 2:
放弃本地修改 - 直接回退到上一版本,再拉取服务器最新代码
git reset --hard // 可加上 commit id
git pull origin master
(4) git pull 的时候认证失败:
remote: invalid Login or password
fatal: Authentication failed for ‘https://…’

问题原因:
账号密码失效或者是未登录
解决方法:
windows 账户下,控制面板 -> 用户帐户 ->windows 凭据 -> 修改 git 密码
(5) 版本回退 git reset --hard {hash} 后提示:
fatal: could not parse object “hash id”
问题原因:
切换到 master 分支后没有更新最新代码,git log 不包含要 reset 的节点
解决方法:
更新代码后 git log 找到对应节点 hash id 再 reset
(6) 切分支后提示文件有修改,撤销文件修改报错 / 对这个文件任何修改都报错
unlink of file ‘modifyFile.c’ failed. should I try again?(y/n)
问题原因:
与问题 (1) 一样,有线程占用要修改的文件,比如代码查看器等
解决方法:
把相关服务停了,重新处理
(7) git push 后提示:
to https://.git
![rejected] localRepo->remoteRepo(fetch first)
error: failed to push some refs to 'https://.git’
Updates were rejected because the remote contain work that you do not have locally.

问题原因:
本地仓库不包含远程仓库修改
解决方法:
更新远程分支并重新 add/commit/push
(8) git push 后提示:
to https://.git
![rejected] localRepo->remoteRepo(fetch first)
error: failed to push some refs to 'https://.git’
Updates were rejected because the tip of your current branch is behind its remote couterpart. Integrate the remote changes bufore pushing again.

问题原因:
本地仓库节点落后于远程仓库节点,当然这可能是自己主动回退的
解决方法:
方案 1:强推。覆盖远程分支,这样会使远程修改丢失,多人同一分支写作的时候不可取
git push -u origin YOUR_BRANCH -f
方案 2:重新拉取远程仓库 merge 再 push。结合具体代码修改情况做处理
git pull origin YOUR_BRANCH
git push -u origin YOUR_BRANCH
方案 3:直接推到新分支,原分支作废
git push origin YOUR_BRANCH_NEW
// 或者
git branch YOUR_BRANCH_NEW
git push -u origin YOUR_BRANCH_NEW

(9) git pull 后提示
fatal: refuse to merge unrelated histories
问题原因:
出现这个问题的最主要原因还是在于本地仓库和远程仓库实际上是独立的两个仓库,如果一开始用 git clone 拷贝到本地就不存在这个问题。本地 git init 后尝试与远程分支关联
解决方法:
pull 命令后加 --allow-unrelated-histories 来解决,合并两个独立启动仓库的历史
git pull origin master --allow-unrelated-histories
(10) git checkout 后提示:
error: cannot stat ‘file…’: Filename too long
问题原因:
如提示,文件名过长无法 checkout。git 可以创建 4096 长度的文件名,然而在 windows 最多是 260,因为 git 用了旧版本的 windows api,导致出现这种情况。
解决方法:
git config --global core.longpaths true // 去除文件名长度限制
(11) git pull 后撤销:
问题原因:
主干分支当前跑不过等原因
解决方法:
git reflog YOUR_BRANCH // 查看当前分支操作记录
git reset --hard YOUR_BRANCH@{1} // 回退到上一节点,拉取 master 之前
(12) git checkout filename 后报错:
error: pathspec did not match any files known to git
问题原因:
git checkout filename 回退未添加到缓存区的文件,但是对未 track 的文件不生效。git checkout 未 track 文件 git 以为是切分支
解决方法:
更新如果不需要该文件,直接删除
rm filename

Git 报错:OpenSSL SSL_read: Connection was reset, errno 10054

有时候会在克隆,拉取项目,推送项目时报这个错,这是因为服务器的 SSl 证书没有经过第三方机构的签署,所以报错。解决办法如下:

git config --global http.sslVerify "false"

git 查看当前的仓库地址

git remote -v

git 查看当前仓库的基本信息

git remote show origin

使用 Git 工具管理仓库

初学者适合用一些 Git 工具,这样就不用记那些很长的命令了。我是学了 git 以后再用工具的,当然会用工具也能节约很多开发时间、也很方便。下面我推荐一款 git 工具:SourceTree老规矩,直接官网下载,这样就有最新版了。好像安装使用的时候需要用邮箱注册一下,如果没有谷歌邮箱那就翻墙。

打不开 GitHub 官网

百度搜索查询网址 dns,或者直接打开网址查询

检测到 https://github.com 网址响应的 IP,将得到的 IP 添加到 hosts 文件中去。

hosts 文件路径为:电脑磁盘中 windows C:\Windows\System32\drivers\etc\hosts 右击,以管理员身份打开,打开方式为记事本。将上面查询到的 IP 地址输入到文件中保存即可。

现在我加入的是:

13.229.188.59 github.com
140.82.112.4 github.com

如果还是不行,那就借阅这位博主的地址:https://zhuanlan.zhihu.com/p/107334179?ivk_sa=1024320u。

工具 :

这里我们可以借助一个工具来更新自己电脑里面的 host 文件。不用每次去找路径在以管理员身份打开,简化了很多繁琐的步骤 :SwitchHosts,直接去官网下载就可以了。也可以到我的百度网盘自己提取,下面附上我的百度网盘地址。

链接:https://pan.baidu.com/s/1J-UspFd82wENMxjGE4RP4g
提取码:arp0

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值