9、git基础

发布于:2024-05-09 ⋅ 阅读:(31) ⋅ 点赞:(0)


在这里插入图片描述

注意点:
1、http、ssh
2、token认证、密码认证
3、sll证书

1、连接远程仓库

1.1personal access token 代替密码认证

github 配置使用 personal access token 认证
一. 问题描述
使用如下命令推送代码到 github :
git push origin main
根据提示输入用户名和密码,报如下错误:

remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead.
remote: Please see https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/ for more information.

根据提示信息可以知道,github 在 2021.8.13 移除了密码认证的支持,它建议使用 personal access token 代替密码认证。由于提示中给出的地址无法访问,所以查阅相关文档,下面主要记录一下如何解决这个问题。
二. 解决方法
github docs 文档中描述说,在使用命令行或API的时候,应该创建一个个人访问令牌(personal access token)来代替密码,下面详细介绍如何创建 personal access token。
参考链接:https://blog.csdn.net/qq_39218530/article/details/119809170

3.1 使用个人访问令牌personal access token登录
登录GitHub账户
点击右上角头像
点击Settings
左边选择最下面一栏Developer settings
选择Personal access tokens
选择第二个Tokens(classic),不要选择第一个
点击右边Generate new token
链接:https://blog.csdn.net/qq_51139827/article/details/130557349

1.2重置用户密码

git认证失败Authentication failed怎么办?清除凭证
Git报错fatal:Authentication failed for‘https://git……解决方法
报错就是因为你输入的账号或者密码错误,导致验证失败。
方法一配置全局参数:

git config --global user.name “xxx”
git config --global user.email “xxx”

方法二:

git remote -v
git remote remove origin
git remote add origin xxx

方法三(可以解决):

git config --system --unset credential.helper

执行这个命令之后,你可以重新写入账号密码,这样就可以重新提交代码了。

1.3git设置不用每次输入密码

查看git配置信息

git config --list

开启:

git config --global credential.helper store

取消:清除配置中纪录的用户名和密码,下次提交代码时会让重新输入账号密码

git config --system --unset credential.helper

1.4Git连接远程仓库

echo "# clash_Linux" >> README.md
git init
git add README.md
git commit -m "first commit"
git branch -M main
git remote add origin https://github.com/fishingcatgo/clash_Linux.git
git push -u origin main

1.先创建一个文件夹,名字为远程仓库的名称
2.在该文件目录下打开Git Bash
3.输入git init,进行初始化(初次连接时)
4.连接远程仓库(初次连接是下一次进入该文件夹就不用了)
输入下列命令

git remote add origin git@github.com:yourName/repositoryname.git
git remote add origin https://github.com/yourName/repositoryname.git

yourName是用户名,repositoryname是仓库名字

5.从远程仓库拉取文件

git pull origin "分支名"

6.查看工作目录状态

git status

7.提交更改,添加备注信息

git commit -m "备注信息"

注意:若第6步的信息中有以下情况:
1.Untraked Files
使用git add .解决该问题
2.Changes not staged for commit
使用 git commit -am “备注信息” 解决

8.将本地文件push到远程仓库

git push origin "分支名"

链接:https://blog.csdn.net/qq_41234663/article/details/110645327

如果有多个远程仓库,此命令将全部列出

git remote -v

删除远程地址

git remote rm origin

更新为你的新远程仓库地址
git remote add origin 你的新远程仓库地址

1.5打标

创建标签:
创建标签使用 git tag [标签名] -m [备注信息] [提交版本号] 这个命令。其中 -m [备注信息] 可以省略不写
git tag 标签名
例如:git tag v1.0 -m “第一版本”

查看标签:
执行 git tag 命令显示仓库中的全部标签列表,执行 git show [标签名] 查看标签详情
git tag
git show 标签名

删除本地标签:
执行 git tag -d [标签名] 删除本地标签
git tag -d 标签名称

将本地标签推送至远程仓库:
执行 git push origin [标签名] 推送标签到远程仓库
git push origin 标签名称

删除远程仓库标签:
使用 git push origin :refs/tags/[标签名] 删除远程仓库的标签
git push origin :regs/tags/标签名称
or
git push origin --delete 标签名称

签出版本:
首先执行 git checkout [标签名] 切换到之前的某个提交版本,然后执行 git checkout -b [新的分支名] 将此提交版本固定到一个新分支上并切换到此分支。
$ git checkout -b 分支名称 标签名称

标签是 Git 中的概念,而 releases 则是 Github、码云等源码托管商所提供的更高层的概念。Git 本身是没有 releases 这个概念,只有 tag。两者之间的关系则是,release 基于 tag,为 tag 添加更丰富的信息,一般是编译好的文件。
链接:https://juejin.cn/post/7101196005843927071

2、基本使用

2.1、常用命令

参考:https://www.ruanyifeng.com/blog/2015/12/git-cheat-sheet.html
# 在当前目录新建一个Git代码库
$ git init

# 显示有变更的文件
$ git status

# 显示当前分支的版本历史
$ git log

# 显示当前分支的最近几次提交
$ git reflog

# 添加当前目录的所有文件到暂存区
$ git add .

# 显示暂存区和工作区的差异
$ git diff

# 提交暂存区到仓库区
$ git commit -m [message]

#使用一条命令进行add和commit操作:
git commit -am "Initial commit"


查看当前分支的文件列表:
git ls-files

查看单个分支的提交记录
要查看单个分支的提交记录,我们可以使用以下命令:
git log <branch_name>

2.2、gitignore

  • git使用.gitignore忽略提交文件并没有生效问题解决
    idea集成git过滤一些不必要提交到git上的文件以及文件夹的时候发现使用.ignore插件创建.gitignore来忽略提交文件并没有生效,每次commit还是带了一堆不必提交的文件,最后找到了处理办法:
    .gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。那么解决方法就是先把本地缓存删除(改变成未track状态),然后再提交:
    git rm -r --cached .
    git add .
    git commit -m “update .gitignore file”
    链接:https://blog.csdn.net/oDaiLiDong/article/details/88874203

为存储库创建文件。.gitignore

touch .gitignore
  • 只选要的
    https://zhuanlan.zhihu.com/p/52885189
/*
!.gitignore
!/dir2/ 

# /*忽略全部,!保留要提交的

  • 某个目录下某个文件
    如果不是在根目录下,比如 /a/b.java,设置这样一个文件不被忽略,却是没有用:
/*
!/a/b.

那不忽略 /a/b.java 应该这样写:

/*
!/a
/a/*
!/a/b.java
  • 参考:
/*
!.gitignore

!utils/
!/config/

# !/test
# /test/*
# !/test/demo.py

# !/a
# /a/*
# !/a/b.java

!/stablediffusionwebui15/
/stablediffusionwebui15/*
!/stablediffusionwebui15/webui2.py
# !/stablediffusionwebui15/webui2.py

!/kohya_ss
/kohya_ss/*
!/kohya_ss/train_network.py

2.3、上传大文件

参考:https://blog.csdn.net/fujian9544/article/details/115112171
https://git-lfs.com/

# 1.安装Git命令行扩展。只需要设置一次Git LFS
$ git lfs install
# 2.选择您希望Git LFS管理的文件类型
$ git lfs track "*.psd"
# 确保跟踪.gitattributes
$ git add .gitattributes
# 3.Just commit and push to GitHub as you normally would.
$ git add file.psd
$ git commit -m "Add design file"
$ git push origin master

2.4、git 将当前仓库和远程仓库合并

主要合并两个分支,并解决冲突
https://blog.csdn.net/m0_45463480/article/details/137016787

附录

  1. 直接在线新建文件

  2. git全局设置

    git config --global user.name “caizhaochuan”
    git config --global user.email “caizhaochuan@kingsoft.com”

  3. 用命令行向此代码库提交代码

    git clone http://ezone.ksyun.com/ezone/czc/test2.git
    cd test2
    touch READEME.md
    git add READEME.md
    git commit -m “add READEME”
    git push -u origin master

  4. 将本地文件夹推送到新建库中

    #进入工作目录
    git init
    git remote add origin http://ezone.ksyun.com/ezone/czc/test2.git
    git add .
    git commit -m “Initial commit”
    git push -u origin master

  5. 将已有的Git代码库代码推送到这个新建代码库中

    进入工作目录
    git remote rename origin old-origin
    git remote add origin http://ezone.ksyun.com/ezone/czc/test2.git
    git push -u origin --all
    git push -u origin --tags


网站公告

今日签到

点亮在社区的每一天
去签到