git使用说明

一点一滴成长 一点一滴成长     2022-08-28     647

关键词:

本文内容参考和转载自:Git教程-廖雪峰的官方网站,网址:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000。

一、安装
linux:先在终端下输入git查看系统有没有安装Git,没有的话ubuntu上直接输入sudo apt-get install git安装。
mac: 直接从AppStore安装Xcode,Xcode集成了Git,不过默认没有安装,你需要运行Xcode,选择菜单->“Xcode”->“Preferences”,在弹出窗口中找到“Downloads”,选择“Command Line Tools”,点“Install”就可以完成安装。
windows:直接从官网下载合适版本Git进行安装。

安装Git完成后,在Git Bash命令行输入以下命令来配置本机用户名和邮箱:

git config --global user.name "Your Name";  

git config --global user.email "[email protected]"。

进入项目目录,输入git init来初始化本地仓库。

注意事项:

1、linux终端上很多命令git bash上也支持,如ls、cd、pwd等。

2、为了避免遇到各种莫名其妙的问题,请确保项目目录中不包含中文。

3、用到记事本的地方推荐使用Notepad++,并将其默认编码设置为UTF-8 without BOM,避免windows记事本程序中对文件添加一些标记内容。

二、文件操作

提交文件到版本库:分两个步骤,先添加到暂存区git add filename,然后再提交git commit -m "branch_name, explain",-m后面跟的是提交说明,说明的开头最好是当前分支名称
添加所有tracked文件到暂存区(文件已经被添加到暂存区则称为tracked已跟踪):git add -u
添加所有tracked文件和Untracked文件到暂存区:git add -A

显示工作区和暂存区[文件]的差异:git diff [filename]
显示工作区和HEAD[文件]的差异(HEAD表示当前版本,也就是最近一次的提交):git diff HEAD [-- filename]
显示暂存区和HEAD[文件]的差异:git diff --cached [-- filename]

清空暂存区中所有改动(工作区不变):git reset 
清空暂存区中指定文件的改动(工作区不变): git reset -- filename/git reset HEAD filename
将工作区中指定文件恢复到最近一次提交操作(add或commit)时的内容: git checkout -- filename 
恢复到最近一次commit的版本: git reset --hard HEAD
恢复到上一次commit版本: git reset --hard HEAD^ 
恢复到上上此commit版本: git reset --hard HEAD^^ 
恢复到第十个commit版本: git reset --hard HEAD~10 
恢复到指定commit版本: git reset --hard commit_id 

查看仓库状态:git status,如果版本库目录中有文件增加、文件被修改、文件被添加到提交暂存区、文件被删除等都会有相应提示。当文件被提交到版本库后运行git status会提示版本库是干净的,无需提交。
查看提交历史日志:git log,其中的一串十六进制数字即为每次commit提交的ID即提交版本号。
查看提交历史日志:git reflog,如果使用reset回退到了指定版本,那么git log只会显示当前版本和之前的版本,而git reflog会显示所有的提交版本。
删除文件:如果文件还未add到暂存区的话直接在本地目录删除,如果文件已经add还需要git rm filename,如果文件已经commit还需要git commit -m "explain"。

三、branch分支管理

创建分支:git branch branch_name
切换到分支:git checkout branch_name
创建并切换到分支:git checkout -b branch_name
查看所有分支:git branch(带*的为当前分支)
合并分支到当前分支:git merge branch_name
合并分支到当前分支(不使用快速模式,推荐):git merge --no-f -m "explain" branch_name
删除已经合并的分支:git branch -d branch_name
删除还未合并的分支:git branch -D branch_name
查看分支合并图:git log --graph

merge合并分支后如果提示有conflict冲突,那我们需要手动修改冲突文件后再对文件进行add和commit。Git会在冲突文件中指明冲突内容:<<<<<<< HEAD到=======中间位当前分支冲突的内容,=======到>>>>>>>branch_name中间内容为要合并的分支上冲突的内容。

git版本库一开始会自动为我们创建当前第一个分支master,HEAD指向的是当前分支,git commit就是往HEAD分支上进行提交。当切换到其它分支上后,HEAD就指向了切换的分支。分支开发完成后就可以与master主干分支合并,合并完成后就可以把这个分支删除掉。Git鼓励大量使用分支。分支创建和切换完毕后我们就可以在自己的分支上进行修改和提交,这与主干分支master互不影响,分支开发完成后切换到master来合并分支并删除分支。

一般在开发中,master分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活。先在master上新建一个dev分支,小伙伴们各自又创建自己的分支,平常我们在自己的分支上干活,并且往dev分支上合并,也就是说dev分支是不稳定的。到某个时候,比如1.0版本发布时,再把dev分支合并到master上,在master分支发布1.0版本,dev分支和各自的分支都可以删除了。对于bug可以通过创建一个新的临时分支来修复,修复后,合并分支,然后将临时分支删除。

四、使用GitHub托管代码

1、SSH

首先需要注册GitHub账号,由于你的本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,所以需要SSH Key:
① 创建SSH Key:在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:ssh-keygen -t rsa -C "[email protected]",然后一路回车,使用默认值即可。如果一切顺利的话,可以在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。
② 将SSH key提交到GitHub上:登陆GitHub,打开“Account settings”,“SSH Keys”页面,然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容,点“Add Key”,你就应该看到已经添加的Key。

为什么GitHub需要SSH Key呢?因为GitHub需要识别出你推送的提交确实是你推送的,而不是别人冒充的,而Git支持SSH协议,所以,GitHub只要知道了你的公钥,就可以确认只有你自己才能推送。当然,GitHub允许你添加多个Key。假定你有两台电脑,你有时在公司提交,有时在家里提交,只要把每台电脑的Key都添加到GitHub,就可以在每台电脑上往GitHub推送了。如果是其他人从GitHub上clone自己的项目的时候,使用SSH的话要提前把其SSH Key添加到GitHub上。

除了ssh还可以使用https协议地址,使用https除了速度慢以外,还有个最大的麻烦是每次推送都必须输入口令,但是在某些只开放http端口的公司内部就无法使用ssh协议就只能用https。

2、从GitHub上push推送和pull抓取分支

① 首先创建一个远程仓库:在GitHub上选择New repository,输入名称,确认,我们就可以看到GitHub上仓库的地址了:[email protected]:milanleon/repository_name.git。创建远程库完成后还需要将本地库与远程库进行关联,使用git remote: git remote add origin [email protected]:milanleon/repository_name.git,远程库的名字就是origin,这是Git默认的叫法,也可以改成别的,但是origin这个名字一看就知道是远程库。

使用git remote命令可以查看远程库的名字,git remote -v可以查看远程库的地址。

② 创建完成远程库后其他人就可以使用git clone将远程库克隆到他的电脑上,git clone [email protected]:milanleon/gitskills.git。默认情况下,clone后只能看到master分支(可以用git branch查看),使用命令git checkout -b branch_name origin/branch_name创建远程库的分支到本地并转到这个分支。

③ 然后就可以用git push命令把本地库的分支内容推送到远程库上:git push -u origin master,实际上也就是把分支master推送到远程。由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送到远程新的

master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以不加-u参数。

如果往远程库push失败,一般是因为远程分支比你的本地更新,需要先使用命令git pull拉取分支:git pull origin branch_name, 拉取完成后再提交(add+commit)和push。如果pull结果中提示合并本地和远程分支时有conflict冲突,则应解决冲突后再提交(add+commit)和push,然后通知冲突对方更新代码。如果拉取时提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,使用命令git branch --set-upstream branch_name origin/branch_name 创建链接关系。

抓取分支还有一个命令:git fetch,与git pull不同的是git pull会自动合并本地和远程分支的文件,而git fetch不会自动合并,这样就可以先用git diff HEAD FETCH_HEAD查看需要合并的文件的不同内容,然后使用git merge合并:git merge origin/branch_name。

 3、参与GitHub上的开源项目

如何参与GitHub上的一个开源项目呢?比如人气极高的bootstrap项目,这是一个非常强大的CSS框架,你可以访问它的项目主页https://github.com/twbs/bootstrap,点击“Fork”就在自己的账号下克隆了一个bootstrap仓库,然后,从自己的账号下clone:git clone [email protected]:michaelliao/bootstrap.git。一定要从自己的账号下clone仓库,这样你才能推送修改。如果你想在bootstrap新增一个功能,立刻就可以开始干活,干完后,往自己的仓库推送。如果你想修复bootstrap的一个bug,你就可以在其GitHub主页上发起一个pull request。当然,对方是否接受你的pull request就不一定了。

五、标签

发布一个版本时,我们通常先在版本库中打一个标签,标签其实就是指向某个commit的指针,具体来说就是指向发布版本那次commit的指针,通过标签可以快速方便的查找到对应的commit信息。

为当前分支最新的commit打一个标签:git tag tag_name,eg:git tag v1.0
为指定commit打标签:git tag tag_name commit_id
为指定commit打标签并添加说明: git tag -a tag_name -m "explain" commit_id
查看所有标签:git tag
根据标签查看对应的commit信息:git show tag_name
推送标签到远程库:git push origin tag_name
删除标签:git tag -d tag_name
如果标签已经推送到远程,要删除远程标签要先从本地删除:git tag -d tag_name,然后从远程删除:git push origin :refs/tags/tag_name。

六、忽略指定文件
有时候你不想提交一些类型的文件,那么可以在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件。不需要从头写.gitignore文件,GitHub已经为我们准备了各种配置文件,只需要组合一下就可以使用了。所有配置文件可以直接在线浏览:https://github.com/github/gitignore。

七、搭建自己的Git服务器

GitHub是一个免费托管开源代码的远程仓库,如果你不想开源自己的项目的话要不就是给GitHub交点钱要不就是搭建自己的Git服务器。具体如何搭建Git服务器可以参考网上的相关教程。

八、总体流程

  先将.gitignore文件放至项目目录中,右键启动git bash->初始化本地仓库:git init->提交所有文件:git add -A; git commit -m "branch_name, explain"->在GitHub上创建远程仓库->将本地版本库与远程库进行关联:git remote add origin [email protected]:milanleon/repository_name.git->将master分支推送到远程库:git push -u origin master,创建dev分支并推送到远程库->创建个人开发分支git branch xsl,平常开发在xsl分支上,开发到一定阶段就将xsl分支合并到dev分支上->功能开发完成后将dev分支推送到远程分支:git push -u origin dev,然后将个人分支删除。push推送dev分支到origin上时可能会失败,一般这是因为有他人在你之前推送了他的dev分支,所以要先pull拉取dev分支到本地:git pull origin dev,拉取完成后再提交到本地分支,然后push到远程分支。pull拉取的时候可能会遇到冲突。->项目完成或发布版本的时候可以将dev合并到master,然后将dev分支删除,打一个标签。

  项目团队中其它人员克隆GitHub上项目:git clone [email protected]:milanleon/winConsole.git->clone后本地只看到了master分支,使用git checkout -b develop origin/develop创建远程库的dev分支到本地并转到这个分支上
->创建个人开发分支lkj,平常开发在lkj分支上,lkj分支开发完成或到一定阶段后后再将lkj分支合并到dev分支上......


git简易使用说明

背景代码用git管理,所以需要大家熟悉git工具的一些操作目前我们自动化在develop分支上进行编写前言安装git,https://git-scm.com/可视化工具推荐,sourcetree,https://www.sourcetreeapp.com/ 准备工作git拉取代码分两种协议,一种http,一... 查看详情

git:通过命令行配置git使用

通过命令行配置Git使用要使用Git,您必须配置您的用户名和电子邮件。通过以下命令为Git配置用户和电子邮件。#configuretheuserwhichwillbeusedbyGit#thisshouldbenotgitconfig--globaluser.name"FirstnameLastname"#configuretheemailaddressgitconfig--globaluser. 查看详情

git使用

git开始使用初始化一个Git仓库,使用gitinit命令。添加文件到Git仓库,分两步:第一步,使用命令gitadd<file>,注意,可反复多次使用,添加多个文件;第二步,使用命令gitcommit-m"",完成。gitstatus查看修改了哪些文件gitdifffilena... 查看详情

git的使用---4.git的基本使用

1.创建版本库版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪。比如我在/site/git-test目录下创建本地仓库。cd/site/git-testgitinit2.添... 查看详情

git的基本使用

参考技术AGit的一些基本使用方法:安装Git:首先需要在电脑上安装Git。可以从Git的官方网站下载适合自己操作系统的Git安装包,然后按照提示安装。初始化一个Git仓库:可以通过命令行进入到代码存储的目录,然后运行gitinit命... 查看详情

git使用基础篇

...,本篇文章从介绍Git开始,重点在于介绍Git的基本命令和使用技巧,让你尝试使用Git的同时,体验到原来一个版本控制工具可以对开发产生如此之多的影响,文章分为两部分,第一部分介绍Git的一些常用命令,其中穿插介绍Git的... 查看详情

git的使用,pycharm中使用github(代码片段)

GIT申请GitHub账户https://github.com/创建本地Git环境Windowswindows系统需要自己下载一个安装包https://git-scm.com/downloadsmacmac本机自带git环境本地git链接githubgitinit#初始化本地git仓库执行以上命令会在本地生成一个.git文件,只有这个.git文件... 查看详情

git:使用submodule进行托管

...也就是需要两套git分别管理prj.git与moduleA.git,而prj.git又使用了moduleA.git。使用submodule进行管理  1. 新建一个项目git     2.新建一个mouleA.git    3.在prj.git里添加 查看详情

[git]git使用规范流程

.../08/git-use-process.html团队开发中,遵循一个合理、清晰的Git使用流程,是非常重要的。否则,每个人都提交一堆杂乱无章的commit,项目很快就会变得难以协调和维护。下面是Git使用规范流程。我从中学到了很多,推荐你也这样使用... 查看详情

git使用说明

Git是流行的分布式版本控制系统,可以方便的管理多人协作的项目并避免了集中式版本控制系统对服务器的依赖。简介版本库(repository)是一个由Git管理的目录,Git将跟踪工作目录下文件的修改并在需要时还原.在工作目录下.git子... 查看详情

git--使用

git使用时两个人冲突:Resolveconflicts 查看详情

使用git下载上传

从Git上克隆项目1.首先需要创建仓库,使用或新建一个目录作为Git仓库gitinit初始化Git仓库,完成后会生成一个.git目录gitinit2.使用gitclone拷贝项目本地仓库gitclone<git地址>上传项目到码云  查看详情

2021最新最全!intellijidea如何使用使用git!git到底是什么!(值得一看)(代码片段)

IntelliJIdea如何使用使用Git!Git到底是什么!前言一、Git是什么二、Git工作区、暂存区和版本库、远程仓库三、Git与SVN的区别3.1存储方式3.2使用方式3.3管理模式四、Git使用4.1Git开始、Git速成4.2环境配置4.3创建仓库4.4pull与push... 查看详情

git使用:安装,使用及常用命令整理

...Windows平台下Git的安装与配置Ubuntu:git与github在ubuntu下的使用   常用git命令清单:  常用Git命令清单(阮一峰)配置命令:一般来说,日常使用只要记住下图6个命令,就可以了。但是熟练使用,恐怕 查看详情

git使用说明

 写下自己使用git的步骤,作为自己的便签(使用的是Mac) 1.安装git  这个可以到官网下载,或者找到相关的安装说明 2.git的常用命令     打开Mac-->终端   2.1切换到自己本地的指... 查看详情

mac上使用git指南(代码片段)

Mac上使用Git的教程一、安装Git二、创建Git仓库三、配置Git四、提交代码五、分支管理六、远程仓库七、克隆仓库八、撤销更改本指南介绍了如何在Mac上使用Git。包括安装Git、创建Git仓库、配置Git、提交代码、分支管理、远程仓库... 查看详情

git使用说明

本文内容参考和转载自:Git教程-廖雪峰的官方网站,网址:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000。一、安装linux:先在终端下输入git查看系统有没有安装Git,没有的话ubuntu上直接输入sudoapt-getinstallgit安... 查看详情

git使用-git仓库

1.初始化版本库  gitinit2.添加文件到版本库  gitadd  gitcommit3.查看仓库状态  gitstatus4.撤销初始化命令  rm-rf.git 查看详情