作为一个开放人员,git版本管理工具必须掌握。学会git并不难,只要按命令多练习几遍即可~
如何安装git就不说啦~本文只讲解一下git的常用操作命令
创建版本库
git init
命令可以把这个目录变成Git可以管理的仓库
$ git init
Initialized empty Git repository in F:/workspace/php/.git/
瞬间Git就把仓库建好了,而且告诉你是一个空的仓库(empty Git repository),细心的读者可以发现当前目录下多了一个.git的目录,这个目录是Git来跟踪管理版本库的,没事千万不要手动修改这个目录里面的文件,不然改乱了,就把Git仓库给破坏了。
添加到版本库
git add
该命令告诉Git,把文件添加到仓库(添加到暂存区)
$ git add readme.txt
warning: LF will be replaced by CRLF in readme.txt. // 这是因为windows和linux下换行方式不同的警告,无妨~
The file will have its original line endings in your working directory
git commit
该命令告诉Git,把文件提交到仓库(把暂存区的所有内容提交到当前分支)
$ git commit -m "v1.0"
[master (root-commit) c38e4e5] v1.0
1 file changed, 1 insertion(+)
create mode 100644 readme.txt
简单解释一下git commit
命令,-m
后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的,这样你就能从历史记录里方便地找到改动记录。
嫌麻烦不想输入-m "xxx"
行不行?确实有办法可以这么干,但是强烈不建议你这么干,因为输入说明对自己对别人阅读都很重要。
git commit
命令执行成功后会告诉你,1 file changed:1个文件被改动(我们新添加的readme.txt文件);2 insertions
:插入了两行内容(readme.txt有两行内容)
为什么Git添加文件需要add,commit一共两步呢?
因为commit可以一次提交很多文件,所以你可以多次add不同的文件,比如:
$ git add file1.txt
$ git add file2.txt file3.txt
$ git commit -m "add 3 files."
版本回退
git log
命令显示提交过的的历史日志
$ git log
commit c38e4e5fa90a31ce9ce5c610886e198dd5f8a134 (HEAD -> master) //版本号
Author: xxx <xxx@qq.com> //提交者,作者
Date: Tue Dec 4 10:26:25 2018 +0800 //提交时间
v1.0 //说明
git reflog
用来记录你的每一次命令操作。
git reset
版本重置(回退)
参数:
--hard HEAD^
(上一个版本)
--hard HEAD^ ^
(上上一个版本),当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100
。
--hard commit_id
:回退到指定的版本号,这里xxxx
不用全部写出来 写出前几位即可
总结:
-
HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id。
-
穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。
-
要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。
git status
查看提交状态
git diff HEAD -- file
命令可以查看工作区和版本库里面最新版本的区别
git checkout -- file
意思就是,把file
文件在工作区的修改全部撤销
git rm file
从版本库中删除该文件
git remote add origin path
关联一个远程库
git push -u origin master
第一次推送master分支的所有内容
git push origin master
每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改
使用分支
git branch <name>
创建分支
git checkout -b <name>
创建+切换分支
git branch
查看分支
git checkout <name>
切换分支:
git merge <name>
合并某分支到当前分支:
git branch -d <name>
删除分支
出现合并冲突的情况
在分支中修改文件并commit
,在另一个分支同样修改了该文件并comit后进行git merge 会出现冲突问题:
$ git merge feature1
Auto-merging readme.txt
CONFLICT (content): Merge conflict in readme.txt
Automatic merge failed; fix conflicts and then commit the result.
Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成。
解决冲突就是把Git合并失败的文件手动编辑为我们希望的内容,再提交。
用git log --graph
命令可以看到分支合并图。
网友评论