git学习记录

克隆远程仓库到本地

git clone https://*********.git

上传远程仓库:

$ git add test.txt
$ git commit -m "add test.txt"
$ git push origin master

#如果遇到failed to push some refs to错误
#输入:$ git pull --rebase origin master再次输入:$ git push origin master

查看远程仓库:

$ git remote -v

本地文件删除:

$ git rm test.txt
"""
rm 'test.txt'
"""
$ git commit -m "remove test.txt"
"""
[master d17efd8] remove test.txt
 1 file changed, 1 deletion(-)
 delete mode 100644 test.txt
 """

本地文件找回:

$ git checkout -- test.txt

删除远程仓库中的文件:

#删除a目录下的2.txt文件
$ git rm -r --cached a/2.txt //   
#删除a目录
$ git rm -r --cached a

$ git commit -m "删除a目录下的2.txt文件" 

$ git push

注释:用-r参数删除目录, git rm --cached a.txt 删除的是本地仓库中的文件,且本地工作区的文件会保留且不再与远程仓库发生跟踪关系,如果本地仓库中的文件也要删除则用git rm a.txt

从远程仓库获取最新代码合并到本地分支:

1.git pull:获取最新代码到本地,并自动合并到当前分支

//查询当前远程的版本
$ git remote -v
//直接拉取并合并最新代码
$ git pull origin master [示例1:拉取远端origin/master分支并合并到当前分支]
$ git pull origin dev [示例2:拉取远端origin/dev分支并合并到当前分支]

备注:不推荐这种方式,因为是直接合并,无法提前处理冲突。 2.git fetch + merge: 获取最新代码到本地,然后手动合并分支 2.1.额外建立本地分支

//查看当前远程的版本
$ git remote -v 
//获取最新代码到本地临时分支(本地当前分支为[branch],获取的远端的分支为[origin/branch])
$ git fetch origin master:master1  [示例1:在本地建立master1分支,并下载远端的origin/master分支到master1分支中]
$ git fetch origin dev:dev1[示例1:在本地建立dev1分支,并下载远端的origin/dev分支到dev1分支中]
//查看版本差异
$ git diff master1 [示例1:查看本地master1分支与当前分支的版本差异]
$ git diff dev1    [示例2:查看本地dev1分支与当前分支的版本差异]
//合并最新分支到本地分支
$ git merge master1    [示例1:合并本地分支master1到当前分支]
$ git merge dev1   [示例2:合并本地分支dev1到当前分支]
//删除本地临时分支
$ git branch -D master1    [示例1:删除本地分支master1]
$ git branch -D dev1 [示例1:删除本地分支dev1]

备注:不推荐这种方式,还需要额外对临时分支进行处理。 2.2.不额外建立本地分支

//查询当前远程的版本
$ git remote -v
//获取最新代码到本地(本地当前分支为[branch],获取的远端的分支为[origin/branch])
$ git fetch origin master  [示例1:获取远端的origin/master分支]
$ git fetch origin dev [示例2:获取远端的origin/dev分支]
//查看版本差异
$ git log -p master..origin/master [示例1:查看本地master与远端origin/master的版本差异]
$ git log -p dev..origin/dev   [示例2:查看本地dev与远端origin/dev的版本差异]
//合并最新代码到本地分支
$ git merge origin/master  [示例1:合并远端分支origin/master到当前分支]
$ git merge origin/dev [示例2:合并远端分支origin/dev到当前分支]

备注:推荐这种方式

Git Status 中文乱码解决

只要一行就行了

$ git config --global core.quotepath false

前后效果对比见图

##更新本地的单个文件 ``` $ git fetch $ git checkout origin/master -- path/to/file ``` ## git 解决fatal: Not a git repository 我用git add file添加文件时出现这样错误: fatal: Not a git repository (or any of the parent directories): .git 提示说没有.git这样一个目录,解决办法如下: git init就可以了

git push错误failed to push some refs to的解决

当我们在远程库中对某个文件进行了在线的编辑,并且没有同步到本地库,之后在本地库添加了文件时,并想提交到远程库时,会出现以下错误:error:failed to push some refs to。

解决方案:这个问题是因为远程库与本地库不一致造成的,那么我们把远程库同步到本地库就可以了。 使用指令

git pull --rebase origin master

这条指令的意思是把远程库中的更新合并到本地库中,–rebase的作用是取消掉本地库中刚刚的commit,并把他们接到更新后的版本库之中.

用下面的图来加强我们的理解

git pull –rebase origin master意为先取消commit记录,并且把它们临时 保存为补丁(patch)(这些补丁放到”.git/rebase”目录中),之后同步远程库到本地,最后合并补丁到本地库之中。

接下来就可以把本地库push到远程库当中了。

参考文章 : git push错误failed to push some refs to的解决

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券