Git命令行

初始化

  • 添加SSH key
    ssh-keygen -t rsa -C “your email”
  • 查看SSH key
    vim ~/.ssh/id_rsa.pub

  • 查看config信息
    git config --list
  • 配置config信息
    git config --global user.name “username”
    git config --global user.email “email”
  • 配置当前项目config信息
    git config user.name “username”
    git config user.email “email”

  • 初始化项目:git init
  • 关联远端仓库: git remote add origin 地址
  • 修改远端仓库地址:git remote set-url origin 新地址
  • 取消关联远程仓库:git remote remove origin

拉取代码

  • 第一次拉取代码: git pull origin master
  • clone远端分支:
    • git clone -b branch_name remote_repo
      例如:
      git clone -b branch_basic https://github.com/baiiu/ZhihuDaily.git
    • git clone remote_repo -b branch
      例如:
      git clone https://github.com/baiiu/ZhihuDaily.git -b branch_basic
  • clone到指定目录中
    git clone remote_repo file_dir

分支

  • 开启分支:git checkout -b feature_one branch

  • 合并分支到develop:
    git checkout dev
    git merge - -no-ff feature_one -m “description”(为了保证版本演进的清晰,我们希望采用这种做法,把feature_one分支 merge进 dev)

<<<<<<< HEAD //代表是当前所在分支的代码,即develop分支的
    public boolean isRead = false;
=======
    private int randomColor;
    public int priority;
>>>>>>> feature_one,这里是在feature_one分支做的修改
  • 推送分支到远端:git push origin branch_name

  • 拉取远端分支:git checkout - -track origin/branch_name

  • 关联远程分支:
    git branch --set-upstream-to branch_name origin/branch-name
    git push --set-upstream origin master

  • 取消和远端关联 :git remote rm origin

  • 删除分支:git branch -d branch_name
                      git branch -D branch_name

  • 删除远端分支:
    git push origin --delete branch_name

  • 从Tag上拆出分支:
    git checkout -b branch_name tag_name

  • 查看分支间的不同
    覆盖 git diff [branchA] [branchB] > a.txt
    追加 git diff [branchA] [branchB] >> a.txt

  • 重命名分支
    git branch -m oldName newName

  • 从某个commit上检出分支
    git checkout -b <branch name> <SHA1>

  • 恢复误删分支
    git log -g 或 git reflog 找到被删分支上的commit
    git branch <branch_name> <SHA1>

  • 修改分支名称
    git branch -m oldName newName
    git push --delete origin oldName
    git push origin newName
    git branch --set-upstream-to origin/newName


修改和回滚

  • 撤销工作区修改 git checkout – fileName 丢弃工作区内某一文件的修改
    git checkout – . 丢弃工作区内所有的修改

  • 撤销已添加到stage暂存区修改
    git reset HAED fileName

  • 重命名文件
    git mv old_file new_file,重命名只能文件,不能是目录

  • 撤销已提交的修改,未推送到远端
    git reset - -hard HEAD^
    git reset - -hard HEAD commitId
    git reset - -hard HEAD~5

  • 重置指针位置:
    git reset - -hard HEAD~
    git reset - -hard HEAD commitId,git reflog 查看命令史,可以找到commitId

  • 远端回滚,简单粗暴:
    git reset --hard HEAD^
    git push origin master -f


删除

  • 删除本地文件:git rm xxx
  • 删除远端文件:git remote romve xxx
  • 删除远端分支:git branch -r -d origin/branchName
  • 删除远端 .idea文件: git rm -fr .idea
  • 删除build文件:git rm -fr */build/\*
  • 删除.iml文件: rm -fr */*.iml

Tag

  • 显示所有Tag: git tag
  • 显示该Tag信息: git show v4.0
  • 从Tag上拆出分支:git checkout -b branch_name tag_name
  • 打Tag,并推送到远端:
    git tag -a v4.0 -m “xxxx”
    git push origin v4.0
    git push origin - - tags
  • 删除该Tag,并在远端也删除:
    git tag -d v4.0
    git push origin :refs/tags/v4.0
    git push origin - -delete tag tagName

推送代码:

  • 第一次推送到远端仓库:git push -u origin master
  • 第一次推送到dev分支:git push -u origin dev
  • 再次推送到远端仓库主分支:git push origin master
  • 推送到dev分支: git push origin dev
  • 强制推送到远端某分支(有时候需要):git push -f origin branchName

查看分支状态

  • 查看当前分支对应远端分支:
    git remote show origin
    git config --list
    git branch -vv

stash命令

  • git stash 暂存当前修改到暂存区
  • git stash apply 取出暂存区中修改
  • git stash drop 删除暂存区最新一条记录
  • git stash pop 取出并删除该记录
  • git stash clear 清空所有暂存区的记录
  • git stash list 列出所有暂存区记录

git blame使用

  • git blame filePath,找到目标代码改动,找到commit
  • git show commit_id,查看commit msg

二分查找

找到第一个是坏的commit;

  • git bisect start [终点] [起点]
    如从当前开始: git bisect start HEAD commitId
  • git bisect good:表示当前commit是好的,向前排查
  • git bisect bad:表示当前commit是坏的,向后排查
  • git bisect reset:恢复到最初的结点

参考git bisect 命令教程

合并多个Commit: git rebase

分支上开发产生多个无效commit,合并到主分支前进行commit合并。

  1. git rebase -i commitId
  2. 修改相应的命令:
    • pick修改为squash,即要重新编辑commit message
    • pick修改为fixup,就使用pick的那个commit message

每次要按下esc 后输入:wq进入下一步。
参考如何优雅地合并多个 Commit

  • git reset HEAD~1
    这个也很方便

修改git历史commit msg

  1. git rebase -i commitId
  2. 修改相应的命令:
    • pick改为edit
  3. git commit --amend --message=“xxx” --author=“xxx” && git rebase --continue

摘取Commit: git cherry-pick

  • git cherry-pick commitId --> 摘取这个commit到当前分支上

  • git status --> show conflicts

  • 修复后使用 git add .

  • git cherry-pick - -continue 提交这次摘取

  • git cherry-pick - -about 放弃这次摘取

  • git cherry-pick <start-commit-id><end-commit-id> 左开右闭

  • git cherry-pick <start-commit-id>^…<end-commit-id> 闭区间



参考:
廖雪峰Git教程
阮一峰 分支管理策略
Git Book

git命令速查表

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
在VScode中使用git命令行可以通过以下步骤进行配置。首先,你需要在终端中执行以下命令来设置VScode作为默认的git编辑器:\[1\] ``` git config --global core.editor "code --wait" ``` 接下来,你需要下载并安装Git命令行工具,可以从官网进行下载安装。安装完成后,你就可以在VScode中使用git命令行了。例如,如果你想将代码提交到git仓库,你可以在VScode的终端中执行以下命令:\[2\] ``` git add . git commit -m "提交信息" git push ``` 其中,`git add .`命令用于将所有修改过的文件添加到暂存区,`git commit -m "提交信息"`命令用于提交代码并添加提交信息,`git push`命令用于将代码推送到远程仓库。 希望以上信息对你有所帮助! #### 引用[.reference_title] - *1* *3* [git命令行操作和Vscode的git操作](https://blog.csdn.net/wzsrlndm/article/details/121136394)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Windows VScode如何配置与使用git?](https://blog.csdn.net/Code_King006/article/details/131646073)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

baiiu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值