git命令
git命令
配置相关操作与初始化
命令名称 | 作用 |
---|---|
git init | 仓库初始化 |
git config --global user.name "你的用户名" git config --global user.email "你的邮箱" |
配置用户名和邮箱 |
git config -l | 查看所有配置信息 |
git config 变量名 | 查看指定配置信息 |
git config --global --unset 变量名 | 删除指定配置信息 |
git config --global --edit | 修改配置信息 |
文件与文件夹相关操作与路径切换
命令名称 | 作用 |
---|---|
cd 绝对路径 | 切换到指定绝对路径 ..切换到上一级目录 文件夹名进入指定文件夹 |
ls | 查看当前文件夹下的所有文件 |
touch 文件1...文件n | 创建文件 |
cat 文件 | 查看文件内容 |
mkdir 文件夹1...文件夹n | 创建文件夹 |
rm 文件夹1 ..文件夹n -r | 删除工作区文件夹 如果要删除缓存区需要添加 --cache 如果需要同时删除暂存区和工作区,需要添加 -f |
rm 文件1 ..文件n | 删除工作区文件 如果要删除缓存区需要添加 --cache 如果需要同时删除暂存区和工作区,需要添加 -f |
操作同步相关操作
命令名称 | 作用 |
---|---|
git add -u | 被修改(modified)和被删除(deleted)文件,不包括新文件(new)同步到暂存区 |
git add . | 新文件(new)和被修改(modified)文件,不包括被删除(deleted)文件同步到暂存区 |
git add -A | 将所有变化同步到暂存区,git add -u 和 git add . 的结合 |
git restore -A | 返回至暂存区的状态 |
git commit | 进入vim模式添加注释并添加到仓库(按esc再输入:wq退出vim) |
git commit -m 注释 | 为本次操作添加注释并添加到仓库 |
git status | 查看当前状态 红色:当前操作只存在于工作区 绿色:当前操作保存到了暂存区但没有保存到本地仓库 白色:当前操作保存到了本地仓库 |
git ls-files | 查看所有暂存区的文件 |
git restore | 回退至暂存区的状态 |
版本相关操作
命令名称 | 作用 |
---|---|
git log | 查看当前版本以及之前的版本(提交日志) 如果加--oneline则会以一行简化的方式查看 |
git reflog | 查看所有提交的历史记录(不只是当前分支的历史记录)。 如果加--oneline则会以一行简化的方式查看 |
git reset --hard 版本号 | 回退到指定版本号的版本,版本号可以只写前七位 |
git reset --hard HEAD^ | 回退到上一个版本,每多一个^就多退一个版本 |
git reset --hard HEAD~n | 回退到前n个版本 |
git reset --hard HEAD@ | 回退到前n个历史记录 |
git reset --hard 版本号 文件名 | 将指定文件回退到指定版本号(需要先进入该文件目录) |
分支相关操作
命令名称 | 作用 |
---|---|
git branch | 查看所有分支 |
git checkout 分支名 | 切换到指定分支 |
git checkout -b 分支名1 ...分支名n | 创建新分支并切换到该分支 |
git merge 分支名1 ...分支名n | 合并分支 |
git branch -d 分支名1 ...分支名n | 删除分支 |
清屏和设置git默认编辑器
命令名称 | 作用 |
---|---|
ctrl+l或clear | 清屏 |
git config --global core.editor vim | 将git的默认编辑器设置为vim |
配置忽略文件
仓库中没有提交该文件
创建一个文件【.gitignore】配置忽略,一般与.git目录同级,不要鼠标右键直接创建,要通过编辑器的方式创建
常见情况有:
- 临时文件
- 多媒体文件、如音频、视频
- 编辑器生成的配置文件(.idea)
- npm安装的第三方模块
# 忽略 .swp文件(临时文件) .mp4文件
.swp
.mp4
#忽略指定的文件 .idea
.idea
#忽略当前文件夹下的node_modules文件和文件夹
node_modules
仓库中已经提交该文件
办法1:【非常委婉型】
- 对于已经加入到暂存区中的文件,可以在暂存区中删除该文件
git rm --cached 文件名
2. 然后再.gitignore中配置忽略
*.mp4
3. add和commit提交即可
办法2:【简单粗暴型】
还可以直接将.git目录删掉,然后重新add和commit也可以,但是这样做风险太大,容易找不到之前的版本。
多人协作远程仓库相关命令
命令名称 | 作用 |
---|---|
git remote -v | 查看当前所有远程地址别名 |
git remote add 别名 远程地址 | 起别名并建立与远程仓库的连接 |
git remote rm 别名 | 删除别名并断开与远程仓库的连接 |
git clone 远程地址 | 将远程仓库的内容克隆到本地(需要本地没有文件) |
git pull | 将远程仓库的更新同步到本地 |
git pull 远程库地址别名 远程分支名 | 将远程仓库对于分支的更新同步到本地 |
git push -f | 提交本地代码到远程仓库并覆盖(慎用,一般只有回退版本时会使用) |
git push -u 别名 分支 | 推送本地分支上的内容到远程仓库并添加关联(-u关联) 如果git push添加了关联,后续推送关联分支文件可以简写成 git push 添加关联分支的子分支直接写成 git push origin 子分支名称 |
git push 别名 --delete 分支名 | 删除远程分支但不删除本地分支(不能删除主分支) |
免密登录
-
创建非对称加密对
//使用git终端在任意路径输入命令即可 ssh-keygen -t rsa -C '邮箱'
-
文件默认存储在家目录(c:/用户/用户名/.ssh)的 .ssh 文件夹中。
- id_rsa 私钥
- id_rsa.pub 公钥
-
将公钥(.pub)文件内容配置到账号的秘钥中
- 首页 -> 右上角头像-> settings -> SSH and GPG keys -> new SSH Key
-
克隆代码时,选择 ssh 模式进行克隆 (地址 在仓库首页 绿色 克隆的位置 选择 use ssh)
git clone git@github.com/xiaohigh/team-repo-1.git
5.ssh-keygen
命令常用参数:
-t
:指定生成密钥的类型,默认使用RSA类型密钥。-f
:指定生成密钥的文件名,默认id_rsa
(私钥,公钥id_rsa.pub
)-P
:提供旧密码,空表示不需要密码(-P ' '
)。-N
:提供新密码,空表示不需要密码(-N ' '
)。-C
:提供一个新注释,比如邮箱。