git常用笔记

常用命令

常用

放弃本地修改

版本控制

配置提交作者

删除文件夹下所有的.git文件

操作分支

克隆项目

本地仓库与远程仓库建立关联

push

git的忽略文件

版本操作

.git文件夹内容过大,怎么清除

遇到的问题

 

 

常用命令

常用

git status #查看状态

 

git status -s #输出状态的简要信息

 

git stash #暂存本地修改

 

git pull  #更新版本

 

git stash pop #取出暂存的修改

 

git add (加路径)# 你需要提交的文件路径  git add .表示提交所有

 

git rm --cached a.txt #取消add的某个文件

 

git commit -m "提交说明" # 提交到缓存区

 

git push #  推送到远程服务器

 

git checkout # 切换分支

 

git log # 查看提交

 

git show # 显示最近一次的提交信息,可以查看到哪些被改动了。 git show 9da581 # 查看某次的提交信息

 

git diff 9da581ec232c # 查看提交差异

 

# 将本地分支和远程分支管理起来,这样就不用每次pull或push都origin git branch --set-upstream-to=origin/master master

 

 

放弃本地修改

# 未使用git add缓存的代码,使用:

git checkout --filepath # 放弃某个文件 git checkout . #放弃所有本地修改的。没有git add的,都返回到原来的状态

# 已使用git add缓存了代码,使用:

git reset HEAD fildpath # 放弃指定文件的缓存 git reset HEAD . # 放弃所有缓存

#已使用git commit提交了代码,使用:

git reset --hard commitid(前6位)  #返回到某个版本,不保留修改。 git reset --soft commitid(前6位)  #返回到某个版本。保留修改

 

 

版本控制

master分支作为生产环境分支,

 

 

 

 

 

 

 

 

配置提交作者

// 仅仅针对当前项目 git config user.name "liumaomao" git config user.email "maomao@.163.com"

 

// 配置全局,可作用于所有项目 git config --global user.name "liumaomao" git config --global user.email "maomao@.163.com" // 生成公钥·linux,不要加sudo    $ cd ~/.ssh    $ ssh-keygen [一路回车即可]

 

 

删除文件夹下所有的.git文件

find . -name ".git" | xargs rm -Rf

 

 

 

操作分支

git要和远程库的分支相同才能使得pull下来的项目和远程库里的项目名一致

git branch  # 查看本地分支 git branch -a # 查看远端分支 git remote show origin # 查看远端分支详细

 

git checkout new # 切换分支 git pull origin/new # 拉取远端分支代码 # 如果本地代码没有做过任何更改,切换分支下载分支代码出现冲突时: git reset –-hard origin/new  # 下载新分支 git reset -–hard origin/new # 把HEAD指向最新下载的分支

 

# 当然你也可以自己创建一个分支然后从远程同名分支下pull代码 git checkout -b new #创建并切换到dev分支 git pull new

 

# 关联本地新建的分支与远程分支 git branch --set-upstream-to=origin/remote_branch  your_branch  

 

git pull origin dev #获取远程库里dev分支的项目(如果进行了关联,可直接使用git pull)

 

新建好的代码库有且仅有一个主分支(master),它是自动建立的。可以新建分支用于开发:

git branch develop master

新建一个叫develop的分支,基于master分支

切换到这个分支:

git checkout develop

现在可以在这个develop分支上做一些改动,并且提交。

注意:切换分支的时候可以发现,在Windows中的repository文件夹中的文件内容也会实时相应改变,变成当前分支的内容。

 

# 删除分支 git branch -d name # 删除本地分支 git push origin --delete name # 删除远程分支

 

 

 

克隆项目

创建一个空的文件夹,然后git bash here

git clone https://gitee.com/shdanyan/environmental_protection.git

新建gitEp文件夹,并clone到该文件夹下

git clone https://gitee.com/shdanyan/environmental_protection.git gitEp

克隆指定分支的项目

git clone -b dev https://gitee.com/shdanyan/environmental_protection.git

 

 

本地仓库与远程仓库建立关联

git remote add origin https://github.com/XXX(username)/YYYY(projectname).git

加上一个remote的地址,名叫origin,地址是github上的地址(Create a new repo就会有)因为Git是分布式的,所以可以有多个remote.

 

git add . git commit -m '***' git push -u origin master

将本地内容push到github上的那个地址上去。参数-u,用了参数-u之后,以后就可以直接用不带参数的git pull从之前push到的分支来pull。

 

此时如果origin的master分支上有一些本地没有pull的代码,push会失败.

解决的办法是, 首先设定本地master的上游分支:

git branch --set-upstream-to=origin/master

然后pull:

git pull --rebase

最后再push:

git push

 

 

 

push

1:现在如果想直接Push这个develop分支上的内容到github

git push -u origin

      如果是新建分支第一次push,会提示:

(常遇问题)

fatal: The current branch develop has no upstream branch.To push the current branch and set the remote as upstream, use

git push --set-upstream origin develop

输入这行命令,然后输入用户名和密码,就push成功了。

  以后的push就只需要输入git push origin

 

2:比如新建了一个叫dev的分支,而github网站上还没有,可以直接:

 git push -u origin dev

这样一个新分支就创建好了。

 

3:提交到github的分支有多个,提交时可以用这样的格式:

git push -u origin local:remote

 比如:git push -u origin master:master

 表明将本地的master分支(冒号前)push到github的master分支(冒号后)。

 如果左边不写为空,将会删除远程的右边分支。

 

 

git的忽略文件

.gitignore文件在windows下无法直接创建,但是可以使用命令行或者sublim的方式创建

echo '0' >> .gitignore

 

.gitignore文件中忽略规则:

.idea  # 表示根目录及其所有子目录下的.idea文件夹都会被忽略 /.idea  # 表示仅仅忽略根目录下的.idea文件夹 /LCFZJC/db.sqlite3 /LCFZJC/venv /LCFZJC/sdd/migrations /LCFZJC/sdd/__pycache__ LCFZJC/LCFZJC/__pycache__

 

 

版本操作

查看提交日志

git log

版本回退

git reset -hard 55015c  #提交hash码的前六位

 

 

.git文件夹内容过大,怎么清除

https://www.cnblogs.com/bay1/p/10982254.html

 

1、查看.git文件夹中大文件

 

 

遇到的问题

1、git push:fatal the current branch master has no upstream branch

解决:git push -u origin master

解释:-u为update origin为远程仓库名,master为要提交到的远程分支

 

2、Updates were rejected because the tip of your current branch is behind

有如下几种解决方法:

1.使用强制push的方法:

$ git push -u origin master -f

这样会使远程修改丢失,一般是不可取的,尤其是多人协作开发的时候。

2.push前先将远程repository修改pull下来

$ git pull origin master $ git push -u origin master

3.若不想merge远程和本地修改,可以先创建新的分支:

$ git branch [name]

然后push

$ git push -u origin [name]

 

3、schannel: next InitializeSecurityContext failed

出错的原因可能是使用了代理导致了git的连接模式改变了,解决方式如下:

# 执行下面命令把URL模式从HTTPS改成SSH即可 git config --system http.sslbackend openssl

 

我按照上面方式改了,但是当使用git clone时又报了另外一个错误:

3.1、error setting certificate verify locations:CAfile : D:/Git/xxx/ca-bundle.crt

出错的原因是我们的证书位置出现了问题,我们直接在git安装目录下搜索ca-bundle.crt的位置,然后重新指定证书位置即可,或者关闭证书校验。

# 方案1:重置证书存放的位置信息 git config --system http.sslcainfo "D:/Git/ssl/certs/ca-bundle.crt" # 方案2:关闭证书校验 git config --system http.sslverify false

 

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

window10解决办法:

win+r输入control打开控制面板-》用户账户-》管理你的凭据-》indows凭据-》更新一下你的git密码

 

 

前进时,请别遗忘了身后的脚印。
原文地址:https://www.cnblogs.com/liudaihuablogs/p/9907750.html