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撤销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