Git版本控制 (安装与使用)

安装命令如下:

sudo apt-get install git

新建一个目录git_test,在git_test目录下创建一个版本库

创建一个版本库:

git init

创建一个版本:

git add code.txt

git commit -m "版本说明"

查看版本记录:

git log

回到某一个版本:

git reset --hard HEAD^ (回到上一个版本,HEAD^^表示上上个版本,

HEAD~1 上一个版本, HEAD~20前20个版本)

也可以通过git log ,查看版本号之后,通过版本号回到制定版本:

git reset --hard 版本号(例如:git reset --hard b3232d45)

如果关闭终端,可以通过下面命令,查看所有的操作:

git reflog

查看当前工作树的状态:

git status

丢弃工作区的改动

git checkout -- <文件> (例如:git checkout -- cook.txt)

撤销暂存区的改动,放回工作区

git reset HEAD <文件>

小结:

  • 场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file。

  • 场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。

  • 场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考[版本回退]一节。git reset --hard HEAD^

对比工作区和某个版本的不同

git diff HEAD -- code.txt

对比两个版本间文件的不同:

git diff HEAD HEAD^ -- code.txt

git diff 8ba028c 061734 -- code.txt

删除工作区文件

git rm 文件 并且提交 git commit -m '说明'

另一种情况是删错了,提交之前,可以直接使用git checkout – code2.txt,这样文件code2.txt又回来了。

小结:

命令git rm用于删除一个文件。如果一个文件已经被提交到版本库,那么你永远不用担心误删,但是要小心,你只能恢复文件到最新版本,你会丢失最近一次提交后你修改的内容。

分支管理

查看分支:git branch

创建分支:git branch <name>

切换分支:git checkout <name>

创建+切换分支:git checkout -b <name>

合并某分支到当前分支:git merge <name>

删除分支:git branch -d <name>

解决冲突

git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容,我们修改如下后保存

分支管理策略

如果要强制禁用fast forward模式,git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息。

准备合并dev分支,请注意--no-ff参数,表示禁用Fast forward:

git merge --no-f -m '禁用fast forward' dev

因为本次合并要创建一个新的commit,所以加上-m参数,把commit描述写进去。

Bug分支

存储当前分支的工作状态

git stash

然后返回主分支,重新创建 修改bug的临时分支,修改完后提交合并bug分支。

最后返回当时工作的状态:

git stash pop

github的使用

配置github

在ubuntu的命令行中,回到用户的主目录下,编辑文件.gitconfig,修改某台机器的git配置。

修改为注册github时的邮箱,填写用户名

使用如下命令生成ssh密钥。

ssh-keygen -t rsa -C "邮箱地址"

进入主目录下的.ssh文件件,下面有两个文件。

公钥为id_rsa.pub

私钥为id_rsa

查看公钥内容,复制此内容

回到浏览器中,填写标题,粘贴公钥

克隆项目

复制git项目的地址

在本地终端进行客隆:

git clone git@github.com:geyi8901/bj18.git

如果克隆出错,输入以下命令解决:

eval "$(ssh-agent -S)'

ssh-add

上传分支

项目克隆到本地之后,执行如下命令创建分支smart.

git checkout -b smart

本地开发代码之后,需要git add git commit -m 最后进行代码分支推送。

推送分支,就是把该分支上的所有本地提交推送到远程库,推送时要指定本地分支,这样,git就会把该分支推送到远程库对应的远程分支上

git push origin 分支名称

例:

git push origin smart

如果上传出错,重新建立

将本地分支跟踪服务器分支

git branch --set-upstream-to=origin/远程分支名称 本地分支名称

例:

git branch --set-upstream-to=origin/smart smart

从远程分支上拉取代码

git pull origin 分支名称

例:

git pull origin smart

使用上述命令会把远程分支smart上的代码下载并合并到本地所在分支。

工作使用git

项目经理:

项目经理搭建项目的框架。

搭建完项目框架之后,项目经理把项目框架代码放到服务器。

普通员工:

在自己的电脑上,生成ssh公钥,然后把公钥给项目经理,项目经理把它添加的服务器上面。

项目经理会给每个组员的项目代码的地址,组员把代码下载到自己的电脑上。

创建本地的分支dev,在dev分支中进行每天的开发。

每一个员工开发完自己的代码之后,都需要将代码发布远程的dev分支上。

Master:用户保存发布的项目代码。V1.0,V2.0
Dev:保存开发过程中的代码。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容