1、Git 命令列表
判断git是否安装成功:输入git(所有git命令以git开头);
2、Git 具体命令
第一步:新建一个文件夹
mkdir demo
cd demo
touch demo.md
注意:在任何git操作之前,都需要切换到Git仓库目录,也就是切换到项目的文件夹目录下。
(0)一般想要提交到git上,首先需要配置自己的用户名和邮箱,这样才比较容易知道代码提交到哪里了。
设置自己的用户名和邮箱:git config --global user.name ""
git config --global user.email ""
这是全局配置,如果是想把文件提交到特定的邮箱,将global移除就可以了。
(1)输入git status:查看git仓库状态
MeWifi:demo cjy$ git status fatal: Not a git repository (or any of the parent directories): .git
意思是当前目录还不是一个Git仓库。
这时候就用到第一个git命令:
(2)git init 代表初始化git仓库
MeWifi:demo cjy$ git init Initialized empty Git repository in /工作/workspace/demo/.git/
可以看到初始化成了,至此demo就是一个git仓库了。
(3)这时候,输入git status查看状态
MeWifi:demo cjy$ git status On branch master Initial commit Untracked files: (use "git add <file>..." to include in what will be committed) demo.md nothing added to commit but untracked files present (use "git add" to track)
默认是在master分支,这里主要提示demo.md这个文件还没有提交到git仓库,而且提示你可以用“git add"命令去提交文件。
(4)git add 提交文件
MeWifi:demo cjy$ git add demo.md MeWifi:demo cjy$ git status On branch master Initial commit Changes to be committed: (use "git rm --cached <file>..." to unstage) new file: demo.md
这时提示Changes to be committed,意思是demo.md文件等待被提交,你可以用git rm --cached去移除这个缓存。
(5)git commit -m "commit message" 真正提交文件
MeWifi:demo cjy$ git commit -m "提交demo.md文件" [master (root-commit) 96bbcd5] 提交demo.md文件 Committer: cjy <cjy@MeWifi.local> Your name and email address were configured automatically based on your username and hostname. Please check that they are accurate. You can suppress this message by setting them explicitly: git config --global user.name "Your Name" git config --global user.email you@example.com After doing this, you may fix the identity used for this commit with: git commit --amend --reset-author 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 demo.md
-m代表提交的信息,执行以上命令就代表我们进行了真正的提交。
第一次使用git命令提交,由于我们没有设置自己的用户名和邮箱,所以默认使用的是本地的。
(6)查看日志:git log
MeWifi:demo cjy$ git log commit 96bbcd51ef1f2010db11de53ba106e680e37c69a (HEAD -> master) Author: cjy <cjy@MeWifi.local> Date: Wed Jul 12 09:24:53 2017 +0800 提交demo.md文件
(7)查看分支情况:git branch
分支在团队协作的时候很重要。假设A做模块a,B做模块b,这是创建各自的分支a,b,那么两个人的工作就独立开了,互不干扰,最后做完后再统一把分支合并起来。
MeWifi:demo cjy$ git branch * master
当前只有一个默认的分支master。如果想要创建新的分支,该怎么做呢?很简单,执行git branch a就新建了一个名为a的分支。它的内容跟master一模一样。
再次输入git branch查看分支
MeWifi:demo cjy$ git branch a MeWifi:demo cjy$ git branch a * master
这时候就可以看见多了个a。细心的同学肯定发现了,master前面有个*号。这是什么意思呢?它代表当前所在的分支是master。
(8)切换到分支:git checkout a
MeWifi:demo cjy$ git checkout a Switched to branch 'a' MeWifi:demo cjy$ git branch * a master
这是a为当前的分支,说明我们已经切换到a分支了。
那有人就说了,要新建再切换多麻烦,有没有更简便的方法呢。聪明:
(9)git checkout -b b:创建分支并切换到当前创建的分支上
MeWifi:demo cjy$ git checkout -b b Switched to a new branch 'b'
Switched to a new branch 'b',这句话的意思是切换到新创建的分支b。
(10)合并分支:git merge
这个命名需要做2步:第一步,切换到master分支,如果已经是了,可以忽略;第二步将分支a的代码合并到主分支,不出意外的话,分支代码很顺利的并到master分支。
(11)删除分支:git branch -d a
如果a分支的代码没有合并到master中,这时去删除a,会提示有代码未合并,删除失败。那么有没有可以直接强制删除它的方法呢?答案是有的。
MeWifi:demo cjy$ git branch -d a Deleted branch a (was 96bbcd5).
(12)强制删除分支:git branch -D a
//切换到主分支master MeWifi:demo cjy$ git checkout master Switched to branch 'master' //再删除分支 MeWifi:demo cjy$ git branch -D b Deleted branch b (was 96bbcd5). MeWifi:demo cjy$
(13)一般代码都会有版本的标识,git也不例外。创建标签的命令为:git tag v1.0
MeWifi:demo cjy$ git tag v1.0 MeWifi:demo cjy$ git tag v1.0