记录比较常用的 Git 命令、和新接触的命令。并且记录一些常见问题的解决方案。RUNOOB Git

# Git 常用命令

# 初始化 git 仓库

git init

# 管理远程仓库

# 添加远程仓库
git remote add origin https://github.com/xxx/xxx.git # origin 是 别名, 地址是仓库地址
# 查看远程仓库列表
git remote -v
# 移除远程仓库
git remote rm origin # 别名

# 提交代码

git push [仓库别名] # 选填仓库别名,多分支建议填写
git push --force # 强制推送,不建议使用。

# 拉取代码(下载)

git pull [仓库别名] # 选填仓库别名,多分支建议填写

# 克隆仓库

git clone https://github.com/xxx/xxx.git

# 克隆指定分支

git clone -b <分支名> <仓库地址>

# git 分支

# 查看本地和远程分支
git branch -a
# 查看本地分支
git branch
# 删除分支
git branch -D 分支名

# 创建与切换分支

# 创建并切换分支
git checkout -b 分支名 [别名/分支名] # 创建并切换分支,[别名 / 分支名] 填写后为拉取远程仓库的分支代码到分支名分支下
# 切换分支
git checkout 分支名 # 已经存在的分支名
# 切换之前的分支
git checkout -

# git stash

git stash 是一个用于保存当前工作目录和暂存区(索引)的临时状态的 Git 命令。它允许你在工作目录中有未提交的修改时,将这些修改保存到一个临时的存储区域,然后恢复到工作目录的干净状态。

# 保存当前修改
git stash
# 恢复 stash
git stash apply
# 保存当前修改
git stash save "message"
# 恢复 stash, 与上一条命令结合使用
git stash apply stash@{0}
# 列出所有的 stash。
git stash list
# 删除最新的 stash
git stash drop
# 恢复最新的 stash,并删除该 stash
git stash pop
# 删除所有 stash
git stash clear

# git config

# 查看 git config 列表

git config --list

# git config 全局配置 email 和 name 的设置

git config --global user.email "[email protected]" # 配置邮箱
git config --global user.name "xxx" # 配置名字

# 查看 git config 中全局配置 的 email 和 name

git config --global user.email # 查看配置的邮箱
git config --global user.name # 查看配置的名字

# git 身份验证

# 个人电脑 SSH 方案

github 关于生成 SSH 的文档
github SSH 添加到 github
也可以阅读博文⭐️SSH 密钥

使用 SSH 的方式,应该使用仓库的 SSH 地址

暂时不确定现在时候需要设置私钥,如果无法使用,就尝试设置。(我貌似没有设置🤣)

  1. Windows 配置方式
Windows配置方式
# 查看配置
git config --list
# 对 Git 设置私钥
git config --global core.sshCommand "ssh -i C:\Users\xxx\.ssh\id_rsa"
# 测试
ssh -T [email protected]
  1. Ubuntu 配置方式
Ubuntu配置方式
# 使用 bash
ssh-agent bash
# 通过 bash 设置私钥
ssh-add ~/.ssh/id_rsa_name
# 测试
ssh -T [email protected]

这样就可以啦。很方便的使用 Git。

# 公共电脑 个人令牌方案

git 命令中 github 现在无法使用账号密码方式进行身份验证。github 推荐使用 github 个人令牌功能,生成的 token 当作密码使用即可。生成个人令牌步骤如下:

  1. 进入 github
  2. 登录 github 账户(账号、密码)
  3. 右上头像 -> settings
  4. 点击左侧菜单 Developer Settings
  5. 点击左侧菜单 Personal access tokens
  6. 点击左侧菜单 Tokens (classic)
  7. 点击 Generate new token 进行创建即可(具体权限根据个人需求选择)
  8. 自己要保存 token,没记住可以回来更新离开 token

通常,我是在服务器上使用个人令牌进行代码 clone。

# 通过个人令牌提交代码

git remote set-url origin  https://<个人令牌>@github.com/<github名字>/<仓库地址>.git

# 常见问题解决方案

# 远程代码强制覆盖本地代码

git fetch
git reset --hard 仓库别名/分支
git pull

# 丢弃未提交的更改

# 丢弃所有未提交的更改

git checkout ./

# 丢弃某个文件所有未提交的更改

git checkout -- filename

# 代码回滚

# 回退到某个版本 mixed 默认

不删除工作空间改动代码,撤销 commit,并且撤销 git add.

git reset --mixed HEAD^
git reset HEAD^

# 回退到某个版本 soft

不删除工作空间改动代码,撤销 commit,不撤销 git add.

git reset --soft HEAD^

# 回退到上个版本 hard

删除工作空间改动代码,撤销 commit,撤销 git add.

git reset --hard HEAD^

# 回退到 n 次提交之前

git reset --hard HEAD~n

# 退到 / 进到,指定 commit 的哈希码

git reset --hard COMMIT_ID

# 修改 commit 内容

# 修改本地最新 commit 内容(未 Push 的 commit 内容)

git commit --amend -m "修改的commit内容"

# 修改最新 commit 内容

git commit --amend

# 修改前几次 commit 内容

  1. 修改前几次 commit 的内容
git rebase -i HEAD~n # n 为修改前几次的内容
  1. 修改 pickedit
    你会看到 pick:******* , 将你要修改内容前的 pick 修改为 edit 后,保存。这时通过 git log 你可以发现,git 的最后一次提交已经变成你选的那个了。
  2. 修改内容
# 通过命令去修改 commit 内容
git commit --amend
  1. 修改内容后,要拿回之前的 log
git rebase --continue

过去无法挽回,未来可以改变,有的人成日殚精竭虑,却掀不起什么风浪,有的人却因一念之差,让世界天翻地覆,这就是命运权重。

阅读次数

请我喝[茶]~( ̄▽ ̄)~*

NIDLH 微信支付

微信支付

NIDLH 支付宝

支付宝