工作中常用的git操作

  1. 配置git
  • 先下载并安装git,https://git-scm.com/
  • 安装完毕后,打开Git Bash
  • 配置用户名和邮箱
    git config --global user.name "test"
    git config --global user.email "test@xx.com"
    
    对于配置用户名和邮箱的理解:
    这里配置的用户名和邮箱并不会进行验证,即,当你push到远程仓库时,并不是用它俩来做身份认证和鉴权的。
    那这里配置的用户名和邮箱有啥用?因为git是个版本控制系统,我们用git只是为了追踪历史变更记录,以及多人协作。使用git不一定需要连接到远程仓库,不一定需要网络。你可以在自己本地维护一个git仓库,记录仓库里的修改。git的版本链是由一次一次的commit构成,一次commit就是一次更新,那在多人协作时,我们当然需要标记一下,某次commit是由谁提交的。这个用户名和邮箱就仅仅是起了这么作用,即标记某次commit是谁提交的。它只是一个comment,一个记号,并不会做校验。
    所以,理论上,随意配置一个用户名和邮箱,都不影响git的使用,但通常建议配置为自己真实的邮箱
  • 配置ssh key
    工作中我们通常需要把本地git仓库和远程仓库进行关联。当我们在本地修改了一些代码后,需要通过git进行提交,并同步更新到远程仓库(git push)。同样的,当远程仓库有其他人做了更新后,我们需要从远程仓库拉去最新的版本到本地(git pull)。这种需要涉及到和远程仓库的通信,有两种方式:sshhttpsssh访问需要配置ssh key,在本地机器使用ssh-keygen生成一对密钥对,并把公钥上传到服务器。而https访问则每次需要验证用户名和密码。ssh不利于匿名访问,比较适合内部项目,比如个人项目,或者工作上的项目。https比较利于匿名访问,比较适合开源项目(方便他人clone,但没有push权限)。
    接下来我们配置ssh key,打开Git Bash,运行ssh-keygen -t rsa -C "test@xx.com",然后一路回车。最终会生成一对密钥对,私钥文件名为id_rsa,公钥为id_rsa.pub。随后将id_rsa.pub里的公钥信息,复制并拷贝到服务器端。
  • 解决中文乱码
    我们使用git status,中文可能会被显示为数字,这时再进行一下配置即可
    git config --global core.quotepath false
    
    Git Bash中右键,选择Options,左侧侧边栏选择Text,右侧将Locale设置为zh_CN,字符集CharacterSet设置为UTF-8
    # 对于已经commit并且push到远程仓库的提交, 想要修改author怎么办
    # 第一步
    git rebase -i HEAD~n # 要对最近的几次commit进行修改author操作
    # 第二步然后按`i`编辑,把`pick` 改成 `edit`,按'Esc'退出编辑,按`:wq`保存退出
    # 第三步, 有几个提交就要进行几次这个操作, 相当于针对每一次commit做修改
    git commit --amend --author="authroName<email@xxxx.com>" --no-edit
    # 第四步
    git rebase --continue
    # 第五步, 强制push
    git push -f
    
  1. 新建仓库

    # 先在远程新建一个仓库
    # 然后在本地找一个目录, 先初始化一个本地仓库
    git init
    # 然后将本地仓库和远程仓库做关联
    git remote add origin git@github.com:yogurtzzz/demo.git
    # 然后在本地进行一些coding, 并push到远程仓库
    git add .
    git commit -m "init"
    git branch -M main # 老项目需要先修改分支名为main
    git push -u origin main
    git push -u origin master
    # 如果本地仓库因为某些原因丢失了它所track的远端仓库, 则可以用如下命令进行重新追踪
    git branch --set-upstream-to=origin/master master
    # 若远程仓库被删掉了, 则要在本地仓库中移除其所track的远端仓库
    git remote remove origin
    # 如何查看本地仓库所跟踪的远端仓库的地址
    git remote show origin
    git remote -v # 查看连接远程仓库的地址(可以看到用的是https还是ssh)
    # 若每次push都需要输入账号和密码, 可能远程地址用的是https协议, 可以通过如下命令进行修改
    git remote remove origin # 先移除origin
    git remote add origin git@github.com:yogurtzzz/demo.git
    # 查看所有远程分支
    git branch -r
    # 查看所有分支
    git branch -a
    git branch -d v1.2  # 删除本地的v1.2分支
    git branch -vv # 查看本地仓库和远程仓库的对应情况
    # 查看当前对应的远程仓库地址
    git remote -v
    # 重新设置远程仓库地址
    git remote set-url origin xxxxxx
    
    
  2. 分支

     # 新建分支
     git branch bugFix #新建一个分支bugFix
     git checkout bugFix #将当前分支切换到bugFix
     git checkout -b bugFix #新建一个分支并切换过去
     # 从远端仓库检出一个分支 ,并切换过去,下面检出远端的 origin/sprint-101 分支, 且在本地起名为 sprint-101,并切换到该本地的 sprint-101 分支 
     git checkout -b sprint-101 origin/sprint-101
     # 普通切换分支
     git checkout spring-101
     # 删除分支
     git branch -d dev # 删除本地的dev分支
     # 删除远端分支
    git branch -r -d origin/v1.2 # 删除本地的远程分支, r for remote
    git push origin --delete v1.2 # 将远程分支的删除推送到服务器
    # 将新建的远程分支推送到远端服务器
    git checkout -b v1.6
    git push origin v1.6:v1.6
    git branch -m oldName newName # 重命名分支
    # 将本地分支和远端分支进行关联
    git branch --set-upstream-to=origin/remote_branch_name local_branch_name
    
  3. 远端新建分支后,更新本地分支

    git remote update
    
  4. 查看本地分支和远程分支对应关系

    git branch -vv
    
  5. 若远端分支删除了, 需要更新本地

    git remote prune origin
    
  6. 远端分支地址改变后,重新进行设置

    git remote set-url origin https://xxx.com/abc.git/
    
  7. 查看历史提交

    # 查看简短的提交信息
    git log --pretty=oneline
    
  8. 版本回退

    # 回退到上一个版本
    git reset --hard HEAD^
    # 回退到 abcd123 指定的版本
    git reset --hard abcd123
    
  9. 多个提交记录合并成一个

    # 比如最近有3个commit,它们的commitId分别为  abcd1,abcd2,abcd3
    # 指定合并后的commitId,比如打算将abcd2和abcd3合并成一个
    git rebase -i HEAD~2 # 将最近2个commit进行合并
    git rebase -i abcd1
    # 进入编辑器
    pick abcd2
    squash abcd3
    # 用wq保存退出, 这样abcd2和abcd3就合并为了一个
    
  10. 关于标签
    标签其实是一个轻量级的分支,或者说是一个不可变的分支,它指向特定提交对象的引用。通常,我们可以使用标签来标记一些特定的提交。比如,在某次大版本上线前,我们将最后一个提交记录打上一个标签,将其标记为一个里程碑式的节点。方便对版本迭代进行追踪。

# 打标签
git tag v1.3  # 在当前HEAD指向的位置,创建本地标签, 标签名为 v1.3
git tag -a v1.3 -m "v1.3版本上线" # 创建标签, 并添加附注
git push origin v1.3 # 将本地标签 v1.3 推送到远程仓库

# 查看标签
git tag # 查看本地所有标签
git show v1.3 # 查看v1.3标签的详细信息, 能看到附注

# 删除标签
git tag -d v1.3 # 删除v1.3标签
git push origin :refs/tags/v1.3 # 将删除标签推送到远程分支

# 检出标签
git checkout v1.3 # 将HEAD指针指向v1.3, 此时会导致HEAD处于DETACH状态
git checkout -b back_v1.3 v1.3 # 创建一个分支back_v1.3, 并在这个分支上检出标签v1.3

附:git趣味学习网站:https://learngitbranching.js.org/

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值