赞
踩
本文使用的linux系统为ubuntu系统
参考B站教程:Git(linux)_哔哩哔哩_bilibili
git介绍
分布式 版本控制 系统,可以解决多人同时开发的代码问题,可以解决找回历史代码的问题。
同一个Git仓库,可以分布到不同的机器上。
其他每个人都可以从服务器仓库克隆一份代码到自己的电脑上,并把各自的提交推送到服务器仓库里,业可以从服务器仓库中拉取别人的提交。
命令合集
git init:创建版本库
git add /git commit:上传代码
git config:配置git
git log:查看所有版本
git reset:版本回退
git reflog:查看历史操作
git status:查看git的状态
git checkout:撤回
git branch:查看当前有几个分支且在哪个分支下工作
git branch <name>:创建分支
git checkout <name>:切换分支
git checkout -b <name>:创建+切换分支
git merge <name>:合并某分支到当前分支
git branch -d <name>:删除分支
安装
sudo apt-get install git
配置
使用git config配置邮箱和用户名
git config --global user.email " "
git config --global user.name " "
新建一个版本库
新建一个目录 mkdir git_test,下面演示使用git管理git_test
在git_test目录下执行git init,创建一个版本库
输入ll,可以查看git_test目录下多了一个git目录,git目录可以帮助管理代码。
新建一个代码文件code.txt,编辑内容如下
使用如下两条命令可以创建一个版本
git add code.txt
git commit -m '版本1'
-m后面为版本信息
add后可以跟多个文件,也可以跟目录。
使用git log查看版本记录
comiit后面跟的是序列号,继续编辑code.txt,在里面增加一行
使用如下命令再创建一个版本并查看版本记录:
使用git log可以查看新添的版本记录:
版本2只记录对版本1的修改。
版本回退
有一个指针指向最新的版本叫HEAD。HEAD~1:当前版本的前一个版本。HEAD~2:当前版本的前两个版本,依此类推。
使用git log可以看到版本回退到了版本1。
如果又想从版本1回到版本2,可以使用版本编号。
如果不知道版本编号, 可以使用git reflog查看历史操作
工作区
git_test目录就是一个工作区。
版本库
工作区有一个隐藏目录.git,这是git的版本库。git版本库里面存了很多东西。
stage(index)暂存区
master:git自动创建的第一个分支。
HEAD:指向master的一个指针。
git add:把文件的修改添加到暂存区。
git add只会把文件的修改放入暂存区。git commit只会根据暂存区创建版本。
git commit:提交更改,把暂存区的所有内容提交到当前分支。
git status:查看git的状态
修改code.txt,新建一个code1.txt,如果没有使用git add命令,使用git status会显示code.txt已被修改,code1.txt会放在Untracked files。可以使用git add code.txt把修改的文件放在暂存区,也可以使用git checkout对修改进行撤销。
git checkout -- code.txt
如果使用git add把文件修改加到暂存区后,如果想撤销修改,使用git reset HEAD 取消暂存,然后使用git checkout撤销修改。
对比文件不同:git diff
修改code.txt后,使用git diff HEAD -- code.txt,比较当前版本HEAD和修改后的版本的区别
--为当前版本,++为修改后的版本。
git分支管理
分支可以实现多人合作完成功能。git把每次提交的版本串成一条时间线,截止目前只有一条时间线,这条分支是主分支,即master分支。
当创建新的分支如dev时,git新建了一个指针叫dev,指向master相同的提交。再把HEAD指向dev,表示当前分支在dev上。
当dev工作完成,可以把dev合并到master上。git直接把mster指向dev的当前提交,完成合并。
合并完成后也可以删除dev分支,把dev指针删掉。
使用git branch查看当前分支.
创建一个分支dev并切换到上面工作.
创建一个指针dev指向master,HEAD指向dev.
修改code.txt内容后,在dev分支提交.
dev分支工作完成后,可以切换回master分支.
git merge dev把master和dev合并
合并完成后,可以删除分支,git branch -d dev
解决冲突:当一个文件在两个分支都修改过,合并时会出现冲突,需要手动解决冲突。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。