【Git常用命令合集】

git常用命令

获取代码&添加git源

  1. 下载代码

    git clone +http网址
    
  2. 切换服务器端git源地址

    git remote set-url origin +http网址
    
  3. 添加上游仓库

    git remote add upstream +http网址
    
  4. 查看版本源信息

    git remote –v
    
  5. 更新源的最新代码到本地仓库

    git fetch upstream
    

分支操作

  1. 查看分支

    git branch -a
    
  2. 查看本地分支

    git branch
    
  3. 查看远程分支

    git branch -r
    
  4. 切换分支

    git checkout +分支名
    
  5. 创建本地新分支

    git checkout –b +分支名
    
  6. 删除分支

    git checkout –d +分支名//会在删除前检查merge状态
    
    git branch -D +分支名//是git branch --delete --force的简写,它会直接删除
    

    删除远程分支

    git push origin --delete [branch_name]
    
  7. 将主分支合并到自己分支

    切换到主分支

    git checkout master
    

    pull下主分支代码

    git pull
    

    切换至自己分支

    git checkout selfBranch
    

    主分支代码merge到自己分支

    git merge master
    

    将自己的分支推送至远端

    git push origin remoteBranchName
    
  8. 当main主分支代码改动,需要更新开发分支(refresh)的代码

    切换到主分支

    git checkout main
    

    拉取最新代码

    git pull 
    

    切换到refresh分支

    git checkout refresh
    

    合并

    git merge main
    

    推送

    git push -u origin refresh
    
  9. 本地分支重命名(还未推送到远程)

    git branch -m oldName newName
    
  10. 远程分支重命名(已经推送远程-假设本地分支和远程对应分支名称相同)

    重命名远程分支对应的本地分支

    git branch -m oldName newName
    

    删除远程分支

    git push --delete origin oldName
    

    上传新命名的本地分支

    git push origin newName
    

    把修改后的本地分支与远程分支关联

    git branch --set-upstream-to origin/newName
    

    删除远程分支的本地缓存才算彻底删除

    git fetch -p origin
    git branch -a
    
  11. 只merge某个commit到指定的branch

    找到commit_id

    git log
    
    git cherry-pick 指定改动commit id
    

添加删除文件

  1. 添加指定文件到暂存区

    git add [file1] [file2]
    
  2. 添加指定目录到暂存区,包括子目录

    git add [dir]
    
  3. 添加当前目录的所有文件到暂存区

    git add .//添加文件至本地分支
    
  4. 删除工作区文件,并且将这次删除放入暂存区

    git rm [file1] [file2]
    
  5. 改名文件,并且将这个改名放入暂存区

    git mv [file-original] [file-renamed]
    

代码提交

  1. 将远程仓库所有分支的最新版本全部取回到本地

    git fetch <远程仓库的别名>
    
  2. 从本地仓库获取最新版本到workspace

    git pull
    
  3. 提交暂存区到本地仓库

    git commit -m [message]git push <远程仓库的别名> <分支名>
    
  4. 把本地仓库的分支推送到远程仓库的指定分支

    git push <远程仓库的别名> <分支名>
    
  5. 取消关联远程仓库(删除已有的gitee远程仓库)

    git remote rm origin
    
  6. 关联多个远程仓库(不能起相同名字)

    git remote add github git@github.com:xxx/xxx.git//远程库github
    git remote add gitee git@gitee.com:xxx/xxx.git//远程库gitee
    

    分别推送

    git push github master
    git push gitee master
    

查看信息

  1. 显示所有文件状态

    git status
    
  2. 显示当前分支的版本历史

    git log
    
  3. 显示某次提交的元数据和内容变化

    git show [commit ID]
    
  4. 搜索提交历史,根据关键词

    git log -S [keyword]
    

代码回退

  1. 查找需要撤销的 commit_id

    git log
    
  2. 撤销这次提交

    git revert [commit_id]
    
  3. 回退到上一个版本

    git reset --hard 版本号
    
  4. 取消本地变更

    git checkout . && git clean –xdf
    
  5. 重置暂存区的指定文件,工作区不变

    git reset [file]
    

例:

git log
git reset --hard commit_id
git push -f -u origin 分支名

git本地分支与远程分支建立连接

git branch --set-upstream-to=origin/<branch> xxxx

xxxx为当前本地分支名; 是本地分支对应的远程分支名。

例如:我的本地分支名refresh,我的远程分支名也是refresh

git branch --set-upstream-to=origin/refresh refresh

设置之后随后提示:

分支refresh设置为跟踪来自origin的远程分支refresh

这样就可以直接使用git pull拉去当前分支对应远程分支的内容了。

如果有个远程分支名为lixiang的,你想本地分支跟这个远程分支建立连接关系,那就执行:

git branch --set-upstream-to=origin/lixiang refresh

之后在本地分支refresh执行git pull, 拉取的将会是远程分支lixiang的最新内容。

push指定commit到远端

第一种方式:

本地仓库有多条commit,push某一条commit到远端。从最初的commit开始一个一个提交,但是不能实现指定某一个commit,只能按顺序提交。

假如本地commit了多次提交但是并不想一下push到远程。

可用:

git push origin commit_id(指定版本号):branchname

例如:

commit a4a39379f4038249f5f93938d43440d2e77eec46 (HEAD -> refresh)
Author: alixa <1920221963@qq.com>
Date:   Fri Mar 31 10:44:36 2023 +0800
    git问题内容补充
commit cf61154022c948986bce9c11cc73dc63614d69d5 (origin/refresh)
Author: alixa <1920221963@qq.com>
Date:   Thu Mar 30 16:11:51 2023 +0800
    新增mapreduce文档内容

根据功能或者时间的原因,可以一个一个提交。

此时可以使用:

// 最下面的一条为最初的一条,优先推送
git push origin cf61154022c948986bce9c11cc73dc63614d69d5:refresh 
// 接着第二条同样的命令,commit换掉即可
git push origin a4a39379f4038249f5f93938d43440d2e77eec46:refresh
// ... 依次按顺序一个一个提交...

第二种方式:

采用cherry-pick用新分支去拉取当前分支的指定commit记录,之后推送到当前分支远程仓库实现推送指定历史提交的功能。

实际操作就是现在突然出现一个需求,此时本地分支需要拉取另一个分支refresh上的某部分代码修改(简单说就是需要合并指定commit记录的文件修改记录到当前分支)

  1. 在被合并的分支上进行查询commit操作

    git log --oneline   // 赋值需要合并的commit hash值
    
  2. 回到主分支后进行操作

    // 合并一个commit_hash执行
    git cherry-pick <commit hash>
    // 合并多个commit_hash执行
    git cherry-pick commit_hashA commit_hashB
    // 合并多个连续的commit_hash执行(..)
    git cherry-pick commit_hashA..commit_hashB
    

注意:commit_hashA必须比commit_hashB提前提交,也就是说在被挑选的分支上,先有commit_hashA,然后才有的commit_hash。此处的commit_hash指的是被合并分支上的commit_hash,要提前记住再切回来执行相关代码。

在合并时遇到冲突:

  1. 合并冲突

    如果遇到了代码冲突,合并过程会停止,需要使用其他的方式来继续对应的操作。这里的其他方式就是,正常的处理方式手动处理,之后进行下面的操作以继续命令。

  2. 采用–continue继续合并

    第一步:需要合并人解决对应的冲突文件,然后提交到暂存区

    git add .
    

    第二步:使用下面的命令继续执行

    git cherry-pick --continue
    
  3. 放弃合并

    (1) 回归原始状态

    // 使用当前的指令,合并的动作暂停,并且回归到操作前的样子
    git cherry-pick --abort
    

    (2)保留状态

    //使用当前的指令,会保留车祸现场,退出cherry-pick
    git cherry-pick --quit
    

差异比较

要使用Git命令比较两个项目中的代码差异,可以按照以下步骤进行操作:

  1. 打开终端或命令提示符,并导航到第一个项目的本地存储库目录。

  2. 运行以下命令以确保你的本地存储库是最新的:

    git pull
    
  3. 导航到第二个项目的本地存储库目录。

  4. 运行以下命令以确保第二个项目的本地存储库也是最新的:

    git pull
    
  5. 返回到第一个项目的本地存储库目录,并运行以下命令来生成两个项目之间的代码差异:

    git diff <目标分支/提交> <源分支/提交>
    

    例如,如果你想比较两个不同分支之间的差异,可以使用:

    git diff branch1 branch2
    

    或者,如果你想比较两个不同提交之间的差异,可以使用:

    git diff commit1 commit2
    
  6. Git将显示两个项目之间的代码差异。你可以查看添加、删除和修改的文件以及每个文件中的具体更改。

空仓库

建立分支

git init -b "main"

建立readme文件并提交

touch README.md
git add README.md
git commit -m "first commit"

添加远程仓库

git remote add origin https://gitee.com/openhubble/cloud-database-explorer-services.git

推送新创建的分支

git push -u origin "main"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值