💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
# **GIT** ## 下载安装Git客户端 ## 安装教程 ``` git config --global user.name "Your Name" git config --global user.email "Your Email" ``` ## 创建本地仓库 ``` git init ``` ## add ### 把文件添加到仓库: ##### 添加指定文件 ``` git add readme.txt ``` ##### 添加多个指定文件 ``` git add readme.txt readme1.txt ... ``` ##### 添加全都指定文件 ``` git add . ``` ## commit: ``` git commit -m "add readme" ``` #### 输入多行提交原因 ``` git commit -m '第一行提交原因' -m '第二行提交原因' ``` #### 将工作区 修改 或 删除 的文件提交到本地版本库, 新增 的文件不会被提交 ``` git commit -am '提交原因' ``` #### 修改最新一条提交记录的提交原因 ``` git commit --amend -m '提交原因' ``` #### 将当前文件改动提交到 HEAD 或当前分支的历史ID ``` git commit -C HEAD ``` ## log #### 显示带提交差异对比的历史记录 ``` git log -p ``` #### 显示 demo.html 文件的历史记录 ``` git log demo.html ``` #### 显示2周前开始到现在的历史记录,其它时间可以类推 ``` git log --since="2 weeks ago" ``` #### 显示截止到2周前的历史记录,其它时间可以类推 ``` git log --before="2 weeks ago" ``` #### 显示最近10条历史记录 ``` git log -10 ``` #### 显示从提交ID f5f630a 到 HEAD 之间的记录,HEAD 可以为空或其它提交ID ``` git log f5f630a..HEAD ``` #### 在一行中输出简短的历史记录 ``` git log --pretty=oneline ``` #### 格式化输出历史记录 ``` git log --pretty=format:"%h" ``` #### Git 用各种 placeholder 来决定各种显示内容 标识 | 使用 ---|--- %H | commit hash %h | 缩短的commit hash %T | tree hash %t | 缩短的 tree hash %P | parent hashes %p | 缩短的 parent hashes %an | 作者名字 %aN | mailmap的作者名 %ae | 作者邮箱 %ad | 日期 (--date= 制定的格式) %ar | 日期, 相对格式(1 day ago) %cn | 提交者名字 %ce | 提交者 email %cd | 提交日期 (--date= 制定的格式) %cr | 提交日期, 相对格式(1 day ago) %d | ref名称 %s | commit信息标题 %b | commit信息内容 %n | 换行 ### 关联远程仓库 ``` git remote add origin [git@github.com:XXXXXXXX.git] ``` ### 第一次推送时,我们要添加`-u` 之后我们可以这条命令 ``` git push origin master ``` ### 从github上下载到本地 ``` git clone git@github.com:youngxhui/nuc_JavaLab.git ``` ### 创建分支 ``` git checkout -b dev ``` `-b` 参数表示创建并切换 ### 用git branch命令查看当前分支 ``` git branch ``` ### 切换分支 ``` git checkout master ``` ### 合并分支 将dev合并到master(先切换到master) ``` git merge dev ``` ### git 合并A分支的部分提交到B分支 对于多分支的代码库,将代码从一个分支转移到另一个分支是常见需求。 这时分两种情况:一种情况是,你需要另一个分支的所有代码变动,那么就采用合并(git merge)。另一种情况是,你只需要部分代码变动(某几个提交),这时可以采用**git cherry-pick**。 > 1. `git checkout` 到另一个分支(A分支),然后使用`git log`找到想要复制的`commit`的id,记录下来 > 2. 切换到自己分支(B分支),使用`git cherry-pick`  [上面记录的`commit id`]  回车即可!   如果想要复制多个, 使用`git cherry-pick (commitid1..commitid100)`,commitid1为想复制的最老提交(不包括),commitid100为想复制的最新提交(包括)   如果想要包括commitid1,那么在commitid1后加^即可,即` git cherry-pick [commitid1^..commitid100]!` > 3. git push到远端B分支,OK ### 删除本地分支 ``` git branch -D [dev] ``` ### 删除远程分支 ``` git push origin --delete [dev] ``` # github ### 生成gitlab密钥并配置 > 电脑开始菜单中找到已安装的gitbash并打开,输入命令 ``` ssh-keygen -t rsa -C "公司邮箱地址" ``` > 按回车,再按3次enter键,生成对应的gitlab密钥:id_rsa和id_rsa.pub > ssh 存储位置(id_rsa.pub) ``` C:/Users/用户名/.ssh/ ``` > 生成gitlab密钥并配置 ``` ssh-keygen -t rsa -C "github邮箱地址" -f ~/.ssh/github_rsa ``` > 生成对应的github密钥:github_rsa和github_rsa.pub > 将github公钥即github_rsa.pub中的内容配置到自己的github上 > 打开github,登录账户,点击头像,点击settings,点击SSH and GPG keys,点击new SSH key,添加title,考本本地生成的***_rsa.pub(本地记事本打开),粘贴到Key中,点击Add SSH key > 验证是否设置成功 ``` # 测试github ssh -T git@github.com # 测试gitlab(@符后面的为公司gitlab地址) ssh -T git@gitlab.xxx.com ``` ### 用户级别配置 * 在git中,我们使用git config * 命令用来配置git的配置文件,git配置级别主要有以下3类: 1. 仓库级别 local 【优先级最高】 2. 用户级别 global【优先级次之】 3. 系统级别 system【优先级最低】 > 用户级别是配置公司gitlba账号还是自己github账号,可以自由选择。因为平常使用公司的代码频率较高,所以我选择将gitlab账号配置成用户级别。gitBath下执行如下命令: ``` git config --global user.name 'lfr' #公司账号名称 git config --global user.email 'lfr@company.com' #公司账号邮箱 ``` > 查看全局配置 ``` git config -l ``` > 仓库级别配置 > local(仓库级别)配置成github的账号。选择一个文件夹作为github的本地仓库,在该文件夹里鼠标右键打开Git Bash Here,执行命令:git init > 再执行命令: ``` git config --local user.name 'username' #github账号名称 git config --local user.email 'username@gmail.com' #github账号邮箱 ``` > 查看本地配置 ``` git config --local -l ``` ## 问题及解决办法 ### Connection was reset, errno 10054 解决办法: ``` git config --global http.sslVerify "false" ``` ### Permission to xxxx/xxxx.git denied to xxxxxxx1. 解决办法: * 打开控制面板 * 点击用户账户 * 点击凭据管理器 * 找到 例如git:https://github.com * 点击编辑,保证账户正确 ### git每次提交都需要输入账户密码 解决办法: 执行以下代码 ``` git config --global credential.helper store ``` <font color="#969696">注:如果是项目内部,不想影响全局可以将`--global`改为`--local`</font> ## 常用命令 ### 在当前分支下,第一次`push` ``` git push --set-upstream origin [branch] ``` ### 不在当前分支下 ``` git push origin [branch]:[branch] ``` ### 列出所有远程分支 ``` git branch -r ``` ### 列出所有本地分支和远程分支 ``` git branch -a ```