Git 学习笔记

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} //找回

 



 
原文地址:https://www.cnblogs.com/sansyou/p/8259186.html