Git使用方法

Pasted image 20240521004024.png

原理图

6|350

git 基本常用命令

git rev-parse --show-toplevel查看当前仓库名称

   mkdir:         XX (创建一个空目录 XX指目录名)

   pwd:          显示当前目录的路径。

   git init          把当前的目录变成可以管理的git仓库,生成隐藏.git文件。

   git add XX       把xx文件添加到暂存区去。

   git commit –m “XX”  提交文件 –m 后面的是注释。

   git status        查看仓库状态

   git diff  XX      查看XX文件修改了那些内容

   git log          查看历史记录

   git reset  --hard HEAD^ 或者 git reset  --hard HEAD~ 回退到上一个版本

                        (如果想回退到100个版本,使用git reset –hard HEAD~100 )

   cat XX         查看XX文件内容

   git reflog       查看历史记录的版本号id

   git checkout -- XX  把XX文件在工作区的修改全部撤销。

   git rm XX          删除XX文件

   git remote       查看远程仓库信息

   git remote add origin https://github.com/tugenhua0707/testgit 关联一个远程库

   git clone https://github.com/tugenhua0707/testgit  从远程库中克隆

   git checkout –b dev  创建dev分支 并切换到dev分支上

   git branch  -a 查看当前所有的分支

   git checkout master 切换回master分支

git merge dev    在当前的分支上合并dev分支

git push -d origin branchName            删除远程分支

git push origin localbranch
将代码推送到远程仓库的指定分支

git revert HEAD^       回到某个commit

   git branch –d dev 删除dev分支

   git branch <name>  创建分支

   git stash 把当前的工作隐藏起来 等以后恢复现场后继续工作

   git stash list 查看所有被隐藏的文件列表

   git stash apply 恢复被隐藏的文件,但是内容不删除

   git stash drop 删除文件

   git stash pop 恢复文件的同时 也删除文件

   git remote -v 查看远程库的信息

   git push origin master  Git会把master分支推送到远程库对应的远程分支上

取消本地目录下关联的远程库:
git remote rm origin

git push origin --delete <branch>删除远程分支

git rev-parse --show-toplevel 显示仓库根路径

您好,这是Bing。我可以帮您解答关于git的问题。根据我的搜索结果,如果您想让本地的docker分支的head设置为远程的origin/docker,您可以使用以下命令:

git remote set-head origin docker

git branch --set-upstream-to=origin/<分支> docker 建立映射

`git branch --set-upstream-to=origin/docker docker`用于建立本地分支与远程分支的关联,`git checkout origin/docker`用于切换到远程分支的本地副本,而`git remote set-head origin docker`用于设置远程仓库的默认分支。这些命令在不同的场景中使用,具有不同的目的和效果。


二分查看哪一次导致的错误

git bisect start [终点] [起点]

git bisect good

git bisect bad

变基

只对尚未推送或分享给别人的本地修改执行变基操作清理历史, 从不对已推送至别处的提交执行变基操作

一般步骤

  1. 在本地创建一个新的 Git 仓库或者克隆一个已有的 Git 仓库。
  2. 在本地修改文件后,使用  git add  命令将修改后的文件保存到本地仓库。
  3. 使用  git commit  命令将本地仓库的文件提交到本地分支。
  4. 使用  git push  命令将本地分支的更新,推送到远程主机。

分支

  1. 创建一个新分支:git branch feature1
  2. 切换到新分支:git checkout feature1
  3. 在新分支上进行开发,修改文件并提交:git add <file>  和  git commit -m \"<message>\"
  4. 切换回主分支:git checkout master
  5. 合并新分支到主分支:git merge feature1
  6. 删除新分支:git branch -d feature1

本地分支和远程分支的名字可以相同,也可以不同。如果名字相同,可以直接使用  git push  命令推送到远程分支;如果名字不同,需要使用  git push <remote> <local branch>:<remote branch>  命令推送到远程分支。

git pull <remote> <branch>  命令会从远程分支拉取更改并将其合并到当前分支

# 配合 Github
1. 注册 github 账号,并新建仓库
> Github 支持两种同步方式 `“https”` 和 `“ssh”`。
>如果使用 `https` 很简单基本不需要配置就可以使用,但是每次提交代码和下载代码时都需要输入用户名和密码。
>如果使用 `ssh` 方式就需要客户端先生成一个密钥对,即一个公钥一个私钥。然后还需要把公钥放到 githib 的服务器上。
2. 创建空白文件夹右键 Git Bash Here
	1. `git config --global user.name "XXXX"` 用户名标识 ----可以填写 github 仓库的名称
	2. `git config --global user.email " xxxx@xxx.com "` 邮箱标识 -------可以填写 github 仓库的邮箱
3. 创建密钥
	1. `ssh-keygen -t rsa `
	2. 复制 id_rsa. Pub 内容
4. 进入 github 设置选择 SSH and GPG keys 添加新的 SSH keys
5. 连接仓库 `git push -u origin master`
## 一个仓库
>Git init 之前可以 mkdir xxx
>Cd xxx

git init
git commit -m "first commit"
git branch -M main
git remote add origin git@github.com:xxx/xxx.git <ssh>/<url>
git push -u origin main

多个仓库

  • 打开命令行终端,并进入您的 Git 仓库所在的目录。
  • 添加第一个远程仓库,使用以下命令:git remote add origin <第一个远程仓库的 URL>这里将远程仓库命名为 origin,您可以根据需要选择其他名称。
  • 添加第二个远程仓库,使用以下命令:git remote add <自定义名称> <第二个远程仓库的 URL><自定义名称> 替换为您想要的远程仓库名称,<第二个远程仓库的URL> 替换为第二个远程仓库的 URL。
  • 切换到不同的远程仓库,使用以下命令:
    git remote set-url origin <新的远程仓库的 URL>
    这里将 origin 替换为您要切换的远程仓库的名称,<新的远程仓库URL> 替换为新的远程仓库的 URL。
    常见报错
    error: RPC failed; curl 28 OpenSSL SSL_read: Connection was reset, errno 10054”
    禁用 git ssl 验证

git config http. sslVerify "false"

SSH 方式需要对 config 为文件进行相关配置
优点是可以长期保存和管理远程仓库信息
配置远程仓库的 url
[remote "origin"]
配置 SSH 密钥和认证信息
[core]
SshCommand = ssh -i /path/to/private_key

feat: 新功能(feature)
fix: 修补 bug
docs: 文档(documentation)
style: 格式(不影响代码运行的变动)
refactor: 重构(即不是新增功能,也不是修改 bug 的代码变动)
chore: 构建过程或辅助工具的变动
revert: 撤销,版本回退
perf: 性能优化
test:测试
improvement: 改进
build: 打包

gitignore 忽略

实现这个功能,你可以在.gitignore文件中使用感叹号(!)来表示例外或者反模式。感叹号(!)开头的模式将否定先前的模式,表示不要忽略该文件或目录。例如,如果你有一个名为test的文件夹,你想忽略其中的所有文件,除了a.txt和b.txt,你可以在.gitignore文件中添加以下内容:

# 忽略test文件夹下的所有文件
test/*

# 但不忽略a.txt和b.txt
!test/a.txt
!test/b.txt

bin/: 忽略当前路径下的 bin 文件夹,该文件夹下的所有内容都会被忽略,不忽略 bin 文件
/bin: 忽略根目录下的 bin 文件
/*. c: 忽略 cat. c,不忽略 build/cat. c
debug/*. obj: 忽略 debug/io. obj,不忽略 debug/common/io. obj 和 tools/debug/io. obj
**/foo: 忽略/foo, a/foo, a/b/foo 等
a/**/b: 忽略 a/b, a/x/b, a/x/y/b 等
!/bin/run. sh: 不忽略 bin 目录下的 run. sh 文件
*. log: 忽略所有 .log 文件
config. php: 忽略当前路径的 config. php 文件

这样,当你执行git add或git commit命令时,只有a.txt和b.txt会被添加或提交,其他文件会被忽略。注意,如果你想忽略整个test文件夹,你需要在最后加上斜杠(/),否则会匹配任何名为test的文件或目录。

git permission denied (publickey)

Git 教程 SSH keys 配置-CSDN 博客
git 提示 permission denied (publickey)问题的解决方法_git@e.coding.net: permission denied (publickey). f-CSDN 博客

刷新缓存:
git rm -r --cached .
git add .

要小心拉取的一半新一半旧!

Github 是玩  fork 模式的,开发者提交自己的代码新建 Pull Request,请求原作者:“把我的代码拉回去吧”。

Gitlab 是玩分支模式的,开发者提交自己的代码新建 Merge Request,想将自己的特性分支合并到主干。

posted @ 2025-04-12 23:07  Fsyrl  阅读(10)  评论(0)    收藏  举报