Git-常见操作

Git仓库管理功能时GitHub的核心。Git属于分散型版本控制管理系统,是为版本管理而设计的软件。Subversion属于集中型版本管理控制系统。

两者选择

集中型:以Subversion为代表的集中型,将仓库集中存放在服务器之中,所以只存在一个仓库。集中型将所有数据集中放在服务器中,有便于管理的优点。但是一旦开发者所处的环境不能连接服务器,就无法获取最新的源代码,开发也就无法进行。服务器宕机时也是同样的问题,服务器故障导致数据消失,开发者无法找到最新的源代码。

分散型:GitHub仓库Fork给了每一个用户。Fork就是将GItHub的某个特定仓库复制到自己的账户下。Fork出的仓库与原仓库是两个不同的仓库,开发者可以随意编辑。

Git初始化设置

设置姓名和邮箱地址

git config --global user.name "XXX"
git config --global user.email "[email protected]"

想要修改这些信息可以直接修改文件.gitconfig

提高命令行输出的可读性

git config --global color.ui auto

基本操作

git init初始化仓库:Git使用git init命令进行初始化。使用该命令之前先创建一个目录。

mkdir git-study
cd git-study
git init

执行完命令之后会生成.git目录,存储者管理当前目录内容所需的仓库数据。将 git-study这个目录的内容称为“附属于该仓库的工作树”。

git status查看仓库的状态:工作树和仓库在被操作的过程中,状态会不断发生变化。

git add向暂存区中添加文件:将文件变成Git仓库的管理对象,暂存区是提交前的的一个临时区域。

git commit保存仓库的历史记录:将当前暂存区的文件实际保存到仓库的历史记录中。

git log查看提交日志:只显示提交信息的第一行可在命令后添加 --pretty=short;只显示指定目录、文件的日志可在命令后添加目录和文件名;显示文件的改动可在后面添加-p.

git diff查看更改前后的差别:可以查看工作树和暂存区的差别

分支操作

git branch显示分支一览表:“*”所在的分支表示当前所在的分支。

git checkout -b创建、切换分支:
切换到future-A分支并进行提交
git checkout -b future-A

切换到master分支
git checkout master

切回上一个分支
git checkout -

git merge合并分支:先切换到将要合并到的分支,然后执行创建合并提交。
git checkout master
git merge --no-ff future-A

git log --graph以图表形式查看分支

更改提交的操作

git reset回溯历史版本:
回溯到创建future-A分支前,要让仓库的HEAD、暂存区、当前工作树回溯到指定状态,需要使用git reset --hard后面跟随目标时间的哈希值;

创建fix-B分支;
git checkout -b fix-B

推进至feature-A分支合并后的状态;
使用git reflog命令,查看当前仓库的操作日。通过 git reset --hard命令恢复到回溯历史前的状态。

消除冲突
git merge --no-ff fix-B

查看冲突部分并将其解决:务必要仔细分析冲突部分的内容后在行修改。

提交解决后的结果

git add
git commit

git commit --amend修改提交信息:进入日志信息后修改内容

git rebase -i压缩历史

推送至远程仓库

git remote add添加远程仓库

git push推送至远程仓库

推送至master分支

推送至master以外的分支

从远程仓库获取

git clone获取远程仓库:

获取远程仓库

获取远程的feature-D分支

git chackout -b feature-D origin/feature-D

其中-b参数的后面是本地仓库中新建分支的名称。

向本地的feature-D分支提交更改
git diff

推送feature-D分支
git push

git pull获取最新的远程仓库分支

你可能感兴趣的:(工具,git,clone,branch,checkout,merge)