未曾提交的本地仓库,push到远程仓库报错:

本地仓库push到远程仓库报错:

error: src refspec master does not match any

error: failed to push some refs to 'https://gitee.com/lorryZhang/my-android-face-detection.git'

只要把本地的git仓库至少commit一次;然后再push即可


git密码用户名验证失败

remote: username: Incorrect username or password (access token)

控制面板→用户账户→凭据管理器,修改git账号的密码即可。


git的push卡主

git提交到gitee上面,卡住

安静的停在了那里,修复:


git config --local sendpack.sideband



git的local和global属性配置

如果是配置只是针对当前项目的,git config --local user.name XXX

如果配置是对系统级别(全局)生效,git config --config user.name XXX


git删除untrack file


1 #删除当前目录下untrack文件,不包括文件夹和.gitignore中指定的文件和文件夹
2 git clean -f
3
4 #删除当前目录下untrack文件和文件夹, 不包括.gitignore中指定的文件和文件夹
5 git clean -df
6
7 #删除当期目录下的所有untrack的文件和文件夹
8 git clean -xdf
9
10 #显示会被删除的文件,添加-n参数
11 git clean -nxfd
12 git clean -nf
13 git clean -nfd


git创建分支


1 git branch # 查看当前已有分支
2 git branch new_branch_name # 创建新分支
3 git branch -D branch_name # 删除指定分支4 git checkout new_branch_name # 切换到新分支,如果是第一次切换则是拷贝当前分支的代码到新分支



指定管理文件后缀

在管理gcc-arm编译器源码,只想要跟踪修改.c以及.h文件,可以在.gitignore中做如下配置即可:


# 忽略所有文件(要首先屏蔽全部,然后再指定例外,这种模式适合于例外是少数的场景)
*
# 不忽略目录(必须要不忽略目录,否则目录下即使有符合要求的文件也不会被管理)
!*/
# 不忽略文件.gitignore
!.gitignore# 指定需要跟踪版本的文件后缀(例外文件)
!*.c!*.h



快速下载github

git clone url:address -depth=1

指定了depth=1,将会只下载最近的提交日志,历史履历将不会下载。这个方法主要用于下载学习使用,如果想要基于工程操作,比如想要拉去最新,比较麻烦,需要执行如下一系列指令,因为本地只有最新的master的分支代码:


1 $ git clone --depth 1 https://github.com/dogescript/xxxxxxx.git
2 $ git remote set-branches origin 'remote_branch_name'
3 $ git fetch --depth 1 origin remote_branch_name
4 $ git checkout remote_branch_name


另外一个方式就是将传输协议有https改为git,https是默认的协议,在github上面clone提供的路径就是https,但是其实如果换成了git下载将会更加顺畅。


git clone https://github.com/apache/iotdb.git
等价于
git clone git://github.com/apache/iotdb.git



如何向github提交变更

1. 在github上面创建project,获得git地址;

2. 来到windows,首先安装git(可以到淘宝的npm网站下载,官网速度着实让人着急:​​http://npm.taobao.org/mirrors/git-for-windows/v2.21.0.windows.1/​​);

3. 在目标目录下:git clone https://github.com/sujiujiu/mybbs.git

4. 进入到下载的目录里面(通过git地址下载的一定是一个文件夹),执行:git push origin master

5. 然后:git init

到此仓库搞掂

如何将本地文件工程上传到远程github地址

  1. git init //把这个目录变成Git可以管理的仓库
  2. git remote add origin https://github.com/xiashiwendao/XX.git //关联远程仓库
  3. git add README.md //文件添加到仓库
  4. git add . //不但可以跟单一文件,还可以跟通配符,更可以跟目录。一个点就把当前目录下所有未追踪的文件全部add了
  5. git commit -m "first commit" //把文件提交到仓库
  6. git push -u origin master //把本地库的所有内容推送到远程库上

如果有文件变更,提交流程

1. git add .

2. git commit -m "message"(-m后面的是注释内容)

3. git push -u origin master(提交到远程服务器)

取消变更

从index(staged)状态切换为unstaged状态,即将通过add命令添加的文件从working tree中删掉

git reset HEAD chapter2/B.jpg

远程模式提交和拉取

上面的描述是直接提交到远程github上面,如果你是远程模式,即仓库是本地git,然后再提交到远程github,这个需要下面的流程

1. git remote add origin https://github.com/sujiujiu/mybbs.git(告诉本地git要提交的目的地)

然后就是“git push origin master",上面已经提到过了。这个过程适用于github工程和本地git是分开建立(比如先建立了本地的git仓库,做了一些开发;后建立的github仓库,想要把本地的git的commit内容推送到github上的方式)。

2. git remote rm origin

3. git pull origin master

关于.gitignore

想要忽略文件夹,使用“/foldname"模式,例如:

/.ipynb_checkpoints

/dataset

如果“/"放在前面代表只是屏蔽一级目录名称为指定名称;如果是放在后面则代表任何一级目录中包含了该名称都会被忽略。例如/dataset,当前目录将会被忽略;如果是dataset/,那么当前目录aa下面创建一个dataset文件夹,然后里面放入文件,仍然不会被git发现。

如果是文件直接写文件名称即可;

windows不允许直接创建.gitignore文件,可以通过下面两种方式创建:

1. 添加.gitignore.文件(前后都有一个点);

2. 创建一个gitignore.txt文件,通过在命令行执行mv gitignore.txt .gitignore来进行改名

注意,ignore的文件/文件夹一定是untrack的,即未提交过(未提交,但是通过add放到staged的数据也是track的,需要通过reset HEAD来将其从staged中移走),只有提交过的文件/文件夹就会被记录跟踪,也就无法做到ignore;如果已经提交的文件要ignore,只能是删掉并提交,然后再ignore。

关于文件管理的生命周期

如果文件夹为空并不会做提交,只有文件夹里面有文件才会被发现并提交。

git add filename

是指将git中没有版本管理的新文件放入到stage区域;如果是git add .,就会将所有的untrack的文件一并放入到stage区域;

git status

现实git中待提交文件的状态,红色,代表untrack,即未被git管理文件,绿色的文件代表已经放入到了stage区域,等待被提交的。

git reset filename

放弃stage中的指定文件;如果是git reset .,则代表把stage中所有的文件都放弃;

git restore filename

放弃stage/ unstage中的指定文件,建议使用此指令,也是git推荐的,reset则是还有回退分支的功能;所以如果仅是放弃修改,使用store。

windows的github教程_当前目录


windows的github教程_javascript_02

git checkout <commit id>/master

放弃本地未提交的修改,获取指定历史提交版本(commit id)或者某个分值最近一次提交内容来覆盖本地文件;

git客户端的配置

git config --list

查看当前所有的git配置项

git config --global user.email XXX@YYY.com

配置当前用户的邮箱

git config --global credential.helper store

配置“记住密码”,这样只要输入一次用户名密码即可以后直接远程提交

git pull发生unmerge异常

如果不想merge而是简单处理,可以首先通过hard回撤来恢复到最近一次pull成功的点:

git reset --hard FETCH_HEAD

git pull origin master

如果不可以,仍然报merge异常,那就checkout master分支:

git checkout -b temp

git checkout master

git pull origin master

gitee(码云)提交,anthentication fail

打开“控制面板” -> 用户账户 -> 凭据管理:管理windows凭据;删掉gitee的账号;这样提交代码的时候又会弹出框,记得这里输入的的用户名是邮箱地址


参考内容:

详细的罗列了git常用的指令,并有简单的说明

​https://quizlet.com/135156569/git-commands-flash-cards/​

​https://git-scm.com/docs​

​http://www.chengxusheji.com/archives/121.html​​ git ignore文件的介绍

 git记住密码

windows下面建立.gitignore文件

merge异常处理

gitee提交认证失败处理

​https://www.jianshu.com/p/1031dd2a6c3a​​ git clone --depth=1时的一些问题

git设置只允许特定类型的文件(git只管理指定后缀的文件)


remote: xiashiwendao: Incorrect username or password (access token)