GIT初次使用

安装GIT(Windows)

https://git-scm.com/downloads(下载安装),安装默认选项勾选安装,安装之后打开git bash.exe(操作和Linux基本操作类似)文件,输入
$ git config --global user.name “Your Name”
$ git config --global user.email "email@example.com"
注意git config命令的–global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。

创建版本库(repository)

windows创建目录不得有中文,防止乱码最好用nodepad++设置编码为utf-8进行编辑;
1、创建目录 在git bash.exe窗口中写入,mkdir catalogueName
2、进入目录,cd catalogueName
3、查看目录,pwd
4、设置为仓库,git init
5、把文件添加到版本库,用nodepad++文件编写一个name.txt文件夹放入catalogueName目录,然后git add name.txt,添加文件到提交列表,git commit -m “提交的什么类型的文件”,add只能添加一个文件,commit可以提交多个文件,-m 后面的是提交说明,方便大家阅读的;

时光穿梭机

>修改

修改文件后,在git bash.exe中输入,git status (查看仓库状态);
显示如下:

On branch master     //在分布式系统中
Changes not staged for commit:     //分期的进行提交
  (use "git add <file>..." to update what will be committed)   //改变将会提交
  (use "git checkout -- <file>..." to discard changes in working directory)    //改变将无视

    modified:   readme.txt  //修改的文件名字

no changes added to commit (use "git add" and/or "git commit -a")

假如长期未修改,忘了上次修改什么地方了,只需要输入:git diff,会提示上次修改什么地方了;
步骤为

  • 修改文件内容;(git status此时可用此命令监控)
  • git add name.txt //将修改的文件添加
  • git commit -m “修改后的”(ps:修改后的文件提交之后不能再使用git diff命令进行查看,此时就要用另一个命令git log查看每个版本的修改之处)

>回退

版本回退,git log获取修改的日志,然后每次修改有个主题,也就是每次提交 -m 后面加的说明,
commit e10529b87a4d852670fc228790b8f8ba999f32de //commit ID让版本回退用的
Author: SHR 357396211@qq.com //仓库所属作者
Date: Thu Nov 8 14:34:38 2018 +0800 //修改时间

我修改后的			//这里是 -m的内容

. git reset —hard e10529b87a//回退到上述版本,取commit ID中的前几位就可以了;(git reset --hard HEAD当前版本)

>分区

工作区和暂存区:
工作区就是电脑看到的目录
版本库(Responsity)就是目录下的.git目录,其中最重要的就是stage的暂存区,和一个git自动创建的分支master,指向master的指针为HEAD
在这里插入图片描述

git add name.txt 把文件保存到暂存区,然后git commit -m把文件提交到HEAD所指的master,到此对修改的文件提交流程有了一定认知,文件必须过暂存区,修改–>add–>commit–>stauts(成功)
修改–>commit–>stauts(失败)

>撤销修改

git checkout – myFirst.txt,这条命令是把修改全部撤销,分两种情况,一种是还未add到暂存区,撤销修改就回到和版本库一模一样的状态;
另一种是添加到暂存区后,又做了修改,撤销修改回到添加暂存区后的状态,也就是最近一次add或者commit之前的状态;
我个人的理解就是:
小明修改了name.txt文件,刚修改完,突然想到情况不对,git status;发现工作区文件需要改变,现在就用git checkout – name.txt;
小黄修改了文件已经添加到暂存区了,这个时候需要git reset HEAD name.txt,将文件回退到工作区,git status 查看工作区,再执行git checkout – name.txt,在查看工作区,发现工作区清空;

>删除

  • 1、git add name.txt;
  • 开始删除
  • 2、rm name.txt;
  • 3、git status;
  • 4、git rm name.txt or git checkout – name.txt

远程仓库

>上传

远程仓库就是在GITHUB上面也创建一个GIT仓库,并且使这两个仓库远程同步,这样,Github上的仓库既可以作为备份,又可以让他人来协同完成;

>下载

在github上新建一个仓库,并且勾选自带readme.md那个选项,生成之后查看readme.md文件是否存在,然后再本地命令行中执行 git clone https://github.com/shihaor/Towice 此处换为自己的git地址;打开本地git目录,发现多了一个目录下有github上的文档;

分支管理

分支就像一个一个的平行宇宙

>创建分支

  • git checkout -b dev (-b表示创建并且切换)这条命令是git branch dev 和git checkout dev这两条命令的集合
  • git branch 查看有多少分支,*代表当前分支
  • 在dev分支上修改name.txt文件–>add–>commit,
  • git checkout master发现该分支下的节点还未进行修改,
  • git merge dev 将DEV的分支同步到MASTER分支下,
  • git branch-d dev删除dev分支

>解决分支冲突

新建一个分支
git checkout one;;
在分支上修改文件并提交;切换分支
git checkout master;
在分支上修改同样的文件并且提交,合并分支,
git merge one;发现报错,打开被修改文件一看,发现系统用====和------->标记出来了每个分支的新增内容,修改一致后进行提交再整合;

>合并分支

合并分支git默认的是fast forward模式,合并之后会删除分支,使用git merge --no-ff -m "123 " 表示禁用fash forward模式,在合并时生成一个新的commit,这样可以看出分支信息(get log)

>Bug分支

假如在当前工作环境出出现了Bug怎么办,又不敢大幅度的调动代码,只能创建一个BUG名字为代号的分支,但是当前工作区还没有保存怎么办,也不能提交,于是使用Git提供的stash功能,可以把工作现场保存起来,
流程就是在dev工作的时候出现了bug,又不想提交,那么就用 git stash保存工作环境,接下来确定要在哪个(master)分支上进行修复,就在哪个分支上创建临时分支,git checkout -b issue,然后修复掉bug,git add --> git commit;修复完成,切换到master分支合并并且删除,git checkout master --> git merge --np-ff -m “已经修复” issue,git checkout dev,切换回dev进行工作,dev当时的工作环境保存了起来,使用git stash list进行查看,git stash pop进行恢复并且删除stash区的任务,相当于git start apply和git drop stash两条命令的集合;

>开发过程中添加新功能

创建新功能分支:git checkout -b newValue;
创建新文件
提交:git add—>git commit
但是接到上级命令不可以使用新功能,销毁他
git branch -d newValue
提示:error: The branch ‘newValue’ is not fully merged.
If you are sure you want to delete it, run ‘git branch -D newValue’.
把–d改为-D可成功删除

>多人协作开发

查看远程仓库:git remote(git remote -v 显示更加详细的信息)
推送分支::git push 远程仓库名字 个人分支名字
假如我要在远程仓库的dev分支进行开发:

  • git checkout -b dev origin/dev//获取远程仓库的dev分支信息
  • git add e.txt
  • git commit -m “add e”
  • git push origin dev //向远程仓库推送dev分支
    假如小明也向dev推送dev分支,他是推送不上去的,提示提交有冲突,需要把冲突抓到本地进行修改,git pull
    会提示抓取失败,原因是没有指定本地dev和远程dev的链接,git branch -set-upstream-to=origin/dev dev
    接下来再使用git pull,手动选择删除内容进行提交;

>reBase(变基)

本身多版本提交会导致很难看,很多条条杠杠,使用git rebase则会使条理清晰一点,更加好看

标签(版本号)

git tag vx.x 给当前分支打上版本号,get log 查看commitID,git tag vx.x commitID给指定ID打上版本号
git tag -a 版本号 -m “说明” commitID给指定版本指定说明
git tag -d vx.x删除标签
git push origin vx.x推送标签到远程
git push origin --tags一次性推送所有未推送的版本号
删除远程标签的步骤:1、删除本地标签:git tag -d vx.x 2、远程删除git push origin shr/tags/vx.x
参考廖雪峰老师的教程,感谢廖雪峰老师的分享

若您初次使用SSH进行Git操作,可以按照以下步骤进行设置: 1. 首先,确认您已经生成了SSH密钥对。您可以通过运行命令`ls -al ~/.ssh`来检查是否已经存在SSH密钥。如果该目录下没有`id_rsa`和`id_rsa.pub`文件,则需要生成的SSH密钥对。 2. 若要生成的SSH密钥对,可以运行以下命令: ``` ssh-keygen -t rsa -b 4096 -C "your_email@example.com" ``` 这里将"your_email@example.com"替换为您在Git平台上注册的邮箱地址。按Enter键接受默认值,生成密钥对。 3. 然后,运行命令`ssh-agent`来启动SSH代理。 4. 添加您的SSH私钥到SSH代理中,使用以下命令: ``` ssh-add ~/.ssh/id_rsa ``` 5. 现在,打开您的Git平台(例如GitHub或Gitee)的设置页面,找到与SSH相关的选项。 6. 在Git平台上,将您的公钥(`id_rsa.pub`文件的内容)添加到您的账户的SSH密钥列表中。详细步骤请查阅Git平台的文档。 7. 一旦您的SSH密钥设置完成,您可以使用SSH协议来进行Git操作。例如,通过以下命令将远程仓库的URL修改为SSH协议: ``` git remote set-url origin git@github.com:user/repo.git ``` 将`user/repo.git`替换为您的远程仓库地址。 现在,您可以使用SSH协议进行Git操作,无需每次输入密码。请注意,这只是一个简单的示例,具体步骤可能因Git平台和操作系统而异。请根据您的实际情况进行相应调整和参考中提到的内容。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值