Git 的使用
Git目录的初始化和克隆
1、创建文件夹,右键 gui bash Here 后通过`git init`命令
( 或者 进入文件夹后通过`git init`命令把这个目录变成Git可以管理的)
2、配置用户
git config --global user.name "xxx"
git config --global user.email "xxx@qq.com"
3、克隆gitHub上的开源项目
git clone http://git.gupaoedu.com/xxx/test.git
4、进入项目中
cd test
Git常用命令
git status 查看工作空间的状态
$ git status
On branch master
Your branch is up to date with 'origin/master'.
nothing to commit, working tree clean
|
touch hello.txt 创建一个txt文件
ll 查看目录文件
$ ll
total 1
-rw-r--r-- 1 琼纲 197121 10 1月 9 11:19 demo
-rw-r--r-- 1 琼纲 197121 0 1月 9 11:26 hello.txt
-rw-r--r-- 1 琼纲 197121 0 1月 9 11:19 README.md
|
再次git status 查看状态
$ git status
On branch master
Your branch is up to date with 'origin/master'.
Untracked files:
(use "git add <file>..." to include in what will be committed)
hello.txt
nothing added to commit but untracked files present (use "git add" to track)
|
git add hello.txt 添加文件到工作状态
再次用git status 查看状态
On branch master
Your branch is up to date with 'origin/master'.
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
new file: hello.txt
|
git commit -m "提交" 提交
$ git commit -m "提交"
[master 3f38e20] 提交
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 hello.txt
|
git diff hello.txt
虽然Git告诉我们hello.txt被修改了,但如果能看看具体修改了什么内容,自然是很好的。比如你休假两周从国外回来,第一天上班时,已经记不清上次怎么修改的hello.txt,所以,需要用`git diff`这个命令看看:
git checkout -- readme.txt 撤销修改的readme.txt ,丢弃工作区的修改
【注意 `git checkout -- file`命令中的`--`很重要,没有`--`,就变成了“切换到另一个分支”的命令】
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令`git checkout -- file`。
场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令`git reset HEAD file`,就回到了场景1,第二步按场景1操作。
Git的创建分支与合并
git branck dev 创建dev分支
git branch 查看分支
$ git branch
dev
* master
|
git checkout dev 切换到dev 分支
$ git checkout dev
Switched to branch 'dev'
$ git branch
* dev
master
|
创建分支并且切换之后,在dev分支上所做的修改不会影响到master 分支,确定修改完成后切回master 分支,使用merge合并修改,把dev上的修改合并到master分支上来,完成一次修改。
$ git branch dev * master
//master 分支的内容如下 $ ll total 3 -rw-r--r-- 1 197121 21 1月 9 16:34 flaw.txt -rw-r--r-- 1 197121 45 1月 9 16:34 readme.txt -rw-r--r-- 1 197121 22 1月 9 16:34 soil.txt //把修改合并到master分支 $ git merge dev Updating 31e211e..97ec599 Fast-forward devContent.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 devContent.txt
//合并后master的分支内容如下,新增了dev上添加的devContent.txt $ ll total 3 -rw-r--r-- 1 197121 0 1月 10 15:07 devContent.txt -rw-r--r-- 1 197121 21 1月 9 16:34 flaw.txt -rw-r--r-- 1 197121 45 1月 9 16:34 readme.txt -rw-r--r-- 1 197121 22 1月 9 16:34 soil.txt
|
碰到立刻要修改的bug时候,使用git stash 可以把当前工作现场“储藏”起来,等以后恢复现场后继续工作。按照正常的git branch bug-100 、git checkout bug-100 进行创建和切换,git commit 进行 提交, git merge 进行合并。合并完成删除bug创建的分支 git branch -d bug-100。。。完成任务后使用 git stash list 找回 隐藏的内容
用git stash apply
恢复,但是恢复后,stash内容并不删除,你需要用git stash drop
来删除,另一种方式是用git stash pop
,恢复的同时把stash内容也删了。
git stash apply stash@{0} //找回 |