Git管理

一、Git安装

  1. 去官网下载git 选择对应系统下载   https://git-scm.com/download,下载后安装默认next即可(此工具为命令行的安装)
  2. 安装好后在git bash里配置用户信息,配置用户信息如下图所示
  3. git config --list里查看用户名邮箱是否配置成功

   

SourceTree

SourceTree 是 Windows 和Mac OS X 下免费的 Git 和 Hg 客户端管理工具,同时也是Mercurial和Subversion版本控制系统工具。支持创建、克隆、提交、push、pull 和合并等操作。

SourceTree拥有一个精美简洁的界面,大大简化了开发者与代码库之间的Git操作方式,这对于那些不熟悉Git命令的开发者来说非常实用。

二、仓库

1.创建仓库

初始化版本库:git init

添加文件:git add

添加关于文件的描述信息:git commit -am "描述信息"

查看仓库状态:git status

2工作流

(1)git status // git状态

(2)git add bash_demo.txt  // 提交到暂存区

(3)git commit -m "bash first commit"  // 提交到本地仓库

(4)git add bash_demo.txt

(5)git reset HEAD bash_demo.txt // 暂存区未commit 回滚至上次状态

(5)git checkout -- bash_demo.txt // 本地工作区文件回滚至上一次状态

已经提交的代码,怎么取消本次提交的修改呢

git log 查看修改日志 copy最近一次修改的commit码

git reset --hard commit码  重置当前分支至此次提交(hard说明的是仓库和暂存区的还有工作区文件都回滚到那个码的状态)

三、远程仓库

本地的git库与github仓库之间传输是通过ssh传输,所以需要创建一个SSH key。

SSH的创建

ssh-keygen -t rsa -C "注册的邮箱"

ssh -T git@github.com 判断本地仓库和远程仓库是否连通

关联远程仓库

git remote add origin git@github.com:lswcc/lsw.git "添加远程仓库"

git pull origin master 数据同步到远程仓库

克隆仓库

因为在日常工作中,我们需要与多人合作开发项目,这样的话需要把远程仓库的代码克隆一部分到本地,然后在本地进行开发,同时在开发完成之后要将更改的内容提交到远程仓库中,这样大家才能协作开发。

创建一个远程仓库

git clone git@github.com:test/test.git --将服务器上的远程仓库同步到本地

标签管理

在我们日常工作中,当需要发布一个新的版本,通常是在版本库中打一个标签,这样就确定了该标签对应的版本时刻,以便将来在某一时刻能够回滚到当前的版本,我们就可以通过标签取出来。

  • git tag         查看所有标签
  • git tag name     基于当前的分支创建标签
  • git tag -a name -m "content"        指定提交信息,其实就是打标签然后提交一项描述信息
  • git tag -d name         删除标签
  • git push origin name      标签发布

分支管理

Task:

  1. 开发某项目。
  2. 为实现某个新的需求,创建一个分支iss53。
  3. 在这个分支上开展工作。

假设临时有个很严重的其他问题需要紧急修补,按照下面的方式处理:

  1. 返回master分支。
  2. 为这次紧急修补建立一个新分支hotfix,并在其中修复问题。
  3. 通过测试后,回到服务器所在的master分支,将修补分支合并进来,然后再推送到服务器上。
  4. 删除hotfix
  5. 切换到之前实现新需求的分支iss53,继续工作。

工作完成以后,将分支iss53合并入master。如果iss53与hotfix工作没有冲突,则合并成功,如果有冲突则需要再进行处理判断后,再合并。

  • 创建分支:git branch 分支名
  • 查看所有分支:git branch  //*号代表当前所在分支
  • 切换分支:git checkout 分支名     //切换到指定分支
  • 合并到master分支:git merge 分支名     //首先切换到master分支,然后merge合并。
  • 删除分支:git branch -d 分支名 

四、git fecth和git pull的差别

1.git fetch 相当于是从远程获取最新到本地,不会自动merge,如下指令:

git fetch orgin master //将远程仓库的master分支下载到本地当前branch中

git log -p master  ..origin/master //比较本地的master分支和origin/master分支的差别

git merge origin/master //进行合并

2. git pull:相当于是从远程获取最新版本并merge到本地

git pull origin master

git pull 相当于从远程获取最新版本并merge到本地。在实际使用中,git fetch更安全一些。

五、git常用命令

  • git show # 显示某次提交的内容 git show $id
  • git add <file> # 将工作文件修改提交到本地暂存区
  • git rm <file> # 从版本库中删除文件
  • git reset <file> # 从暂存区恢复到工作文件
  • git reset HEAD^ # 恢复最近一次提交过的状态,即放弃上次提交后的所有本次修改
  • git diff <file> # 比较当前文件和暂存区文件差异 git diff
  • git log -p <file> # 查看每次详细修改内容的diff
  • git branch -r # 查看远程分支
  • git merge <branch> # 将branch分支合并到当前分支
  • git stash # 暂存
  • git stash pop #恢复最近一次的暂存
  • git pull # 抓取远程仓库所有分支更新并合并到本地
  • git push origin master # 将本地主分支推到远程主分支

六、git和github的关系

用一句话形容这二者的关系:git是弓,你的代码是箭,github是靶子。 git是软件,它可在本地建立仓库,你写的代码的各个版本都可以存着。github是网上仓库,你写的代码的各个版本都可以存着。 

git是一个版本管理工具,是可以在你电脑不联网的情况下,只在本地使用的一个版本管理工具,其作用就是可以让你更好的管理你的程序,比如你原来提交过的内容,以后虽然修改了,但是通过git这个工具,可以把你原来提交的内容重现出来,这样对于你后来才意识到的一些错误的更改,可以进行还原。

关于github,这是一个网站,就是每个程序员自己写的程序,可以在github上建立一个网上的仓库,你每次提交的时候可以把代码提交到网上,这样你的每次提交,别人也都可以看到你的代码,同时别人也可以帮你修改你的代码,这种开源的方式非常方便程序员之间的交流和学习。 

七、Git 工作区、暂存区和版本库概念

  • 工作区:就是你在电脑里能看到的目录。
  • 暂存区:英文叫stage, 或index。一般存放在 ".git目录下" 下的index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。
  • 版本库:工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值