Git 的正确使用姿势与最佳实践:团队协作和版本控制的最佳实践| 青训营;

2023年 8月 26日 59.3k 0

Git是什么

Git是一个分布式版本控制系统,用于跟踪和管理文件和代码的变化。它最初由Linus Torvalds于2005年创建,旨在管理Linux内核的开发。Git以其速度、灵活性和强大的分支支持而闻名。

Git的主要目标是跟踪文件的变化并保留完整的历史记录,以便可以随时回溯到之前的任何版本。它使用称为"提交"的操作来记录文件的变化,并以树状结构组织这些提交。每个提交都包含一个唯一的标识符(SHA-1哈希),用于识别和引用该提交。

Git的工作方式是将代码库完整地复制到每个开发者的计算机上,这样每个开发者都拥有完整的项目历史记录和所有分支的副本。这使得开发者可以在没有网络连接的情况下进行工作,并且可以轻松地创建和合并分支,以支持并行开发和实验性功能。

除了基本的版本控制功能外,Git还提供了许多其他功能,如分布式开发、合并冲突解决、标签、快照管理等。它广泛应用于软件开发领域,成为许多项目团队协作和版本控制的首选工具。

使用小TIPS

GitTips

1.

fatal: unable to access 'https://github.com/DavidHGS/qiniuyun_project.git/': OpenSSL SSL_read: 
Connection was aborted, errno 10053

设置取消SSL证书验证

git config --global https.sslVerify false

2.

fatal: Not a valid object name: ‘latest_branch‘.

原因是没有提交一个对象,要先commit之后才会真正建立master分支,此时才可以建立其它分支。

git add .
git commit -m "message"
##可以创建本地分支了:
git branch latestbranch

git查看config设置

git config --list

git设置代理

git config --global http.proxy 127.0.0.1:7890
git config --global https.proxy 127.0.0.1:7890

取消设置代理

git config --global --unset http.proxy
git config --global --unset https.proxy

Ubuntu git设置中文语言

可以使用以下命令将 Git 的语言设置为中文:

touch ~/.bash_aliases
echo "alias git='LANG=zh_CN.UTF-8 git'" >> ~/.bash_aliases
. ~/.bash_aliases

这将向 ~/.bash_aliases 文件添加一条别名命令,使得使用 git 命令时,将 LANG 环境变量设置为 zh_CN.UTF-8。然后使用 . ~/.bash_aliases 命令使其生效。

tips:

如果上述命令未生效,可以尝试以下步骤:

  • 确保使用的 Git 版本支持中文语言。您可以使用以下命令查看 Git 的版本信息:

    cssCopy code
    git --version
    

    如果 Git 版本过低,可能不支持中文语言。您可以尝试更新 Git 版本,以便支持中文语言。

  • 检查 Git 配置文件中是否设置了语言环境变量:

    grep -i LANG ~/.gitconfig
    

    在执行 Git 命令时,显式地将语言环境变量设置为中文,例如:

    bashCopy code
    LANG=zh_CN.UTF-8 git clone https://github.com/user/repo.git
    
  • 系统中没有安装中文语言支持的相关库,可能会导致 Git 的中文语言设置不生效。

    尝试安装中文语言支持的相关库,例如:

    sqlCopy code
    sudo apt-get install language-pack-zh-hans
    

    安装完成后,重新打开一个新的终端窗口,然后尝试设置 Git 的语言为中文。

  • 常用命令

    如何将本地项目上传到git?

    git init        //初始化版本库
    git add .       //添加到缓存区中
    git commit -m 'first commit'    //提交到版本库,并注释
    git remote add origin 你的远程库地址    //本地库和远程库关联
    git pull origin master(或者分支名)        //push前最好使用pull来拉取下最新资源。避免冲突
    git push -u origin master(或者分支名)    //第一次推送时候要写
    git push origin master(或者分支名)     //如果不是第一次,则直接使用该命令即可推送修改
    

    git常用命令

    //新建分支
    git branch 分支名
    //切换分支
    git checkout 分支名
    ​
    //删除本地分支
    git branch -d 分支名
    //强制删除本地分支
    git branch -D 分支名
    //删除远程分支
    git push origin --delete 分支名
    ​
    //查看本地所有分支
    git branch
    //查看远程所有分支
    git branch -r
    //查看远程和本地所有分支—一般用这个
    git branch -a
    ​
    //重命名本地分支
    git branch -m  
    

    push和pull

    push: 本地分支合并到远程分支

    pull: 将远程分支合并到本地分支

    git fetch&git pull详解

    git fetch的意思是将远程主机的最新内容拉到本地,用户再检查无误后再决定是否合并到工作本地分支中

    git pull是将远程主机中的最新内容拉取下来后直接合并,即:git pull = git fetch+git merge,这样可能会产生冲突,需要手动解决。

    git冲突原因和解决冲突

    产生原因: 多个开发者同时使用或者操作git中的同一个文件,最后在依次提交commit和推送push的时候,第一个操作的是可以正常提交的,而之后的开发者想要执行pull和fetch操作的时候,就会报冲突异常conflict。

  • 两个分支中修改了同一个文件(不管什么地方)
  • 两个分支中修改了同一个文件的名称
  • 冲突消除的方式:

  • git pull命令。拉取远程分支上的代码并合并到本地分支,目的是消除冲突;
  • git stash命令。把工作区的修改提交到栈区,目的是保存工作区的修改;
  • git撤销commit但是未git push的情况(如在 Git 恢复先前的提交? )

    //找到上次git commit的id
    git log
    //执行撤销操作,同时将代码恢复到该commit_id之前的代码提交状态
    git reset --hard  commit_id
    //执行撤销但是保留更改
    git reset  commit_id
    

    git rebase和git merge

    合并前有两个分支:

    A

    相关文章

    服务器端口转发,带你了解服务器端口转发
    服务器开放端口,服务器开放端口的步骤
    产品推荐:7月受欢迎AI容器镜像来了,有Qwen系列大模型镜像
    如何使用 WinGet 下载 Microsoft Store 应用
    百度搜索:蓝易云 – 熟悉ubuntu apt-get命令详解
    百度搜索:蓝易云 – 域名解析成功但ping不通解决方案

    发布评论