简介
Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。
git工作流程
git工作流程大致分为以下几步:
- 在本地创建版本库或新建远程库
- 克隆远程库或上传本地库到远程
- 对文件进行修改
- 提交修改
- 如果别人修改了文件,可以pull到本地,解决冲突
- 同步到远程
常用命令
git init
git init可以在当前目录创建git仓库。
$ cd new_project
$ git init
git status
git status命令可以让我们时刻掌握仓库当前的状态。但是不能看到具体修改了哪些内容,如果需要查看具体修改内容,可以使用:
$ git diff file
git commit
在提交之前,我们需要先将修改放到暂存区使用命令:
$ git add .
可以将所有修改加入暂存。接着使用命令:
$ git commit -m"message"
可以对修改的文件进行提交。-m后可填写相关提交说明。
git log
使用git log可以查看从最近到最远的提交日志。
git reset
此命令可以进行版本回退,回退到上一版本:
$ git reset HEAD^
回退到上上版本:
$ git reset HEAD^^
回退到n个版本之前:
$ git reset HEAD~n
回退到指定id的commit(id不用写全,写前几位git为帮你补全):
$ git --hard id
撤销操作
如果工作区的某个文件被改乱了,但还没有提交,可以用git checkout命令找回本次修改之前的文件。
$ git checkout -- [filename]
它的原理是先找暂存区,如果该文件有暂存的版本,则恢复该版本,否则恢复上一次提交的版本。
注意,工作区的文件变化一旦被撤销,就无法找回了。
如果不小心把一个文件添加到暂存区,可以用下面的命令撤销。
$ git rm --cached [filename]
上面的命令不影响已经提交的内容。
分支操作
git branch
使用以下命令查看目前的分支:
$ git branch
$ git branch -a 查看所有远程分支
git checkout
使用git checkout branchname 可以切换到指定的分支
git merge
使用命令:
$ git merge branchname
可以将指定的分支合并到目前的分支。以下文章提出了使用merge的几种场景:blog.csdn.net/qq_42780289…
git rebase
如果你想让分支历史看起来像没有经过任何合并一样,可以用git rebase
git merge:
git rebase:
当feature/mywork分支更新之后,它会指向这些新创建的提交(commit),而那些老的提交会被丢弃。 如果运行垃圾收集命令(pruning garbage collection),这些被丢弃的提交就会删除。