git &github 快速入门
git命令
准备
$ mkdir git_trainning 创建文件夹
$ cd git_trainning/ 切换到这个文件夹
$ git init 在git_trainning 下面创建隐藏文件.git
如果你没有看到.git目录,那是因为这个目录默认是隐藏的,用ls -ah命令就可以看见
文件
在该文件夹下面,添加到版本库
$ vim first_git_file.txt 创建一个first_git_file.txt文件
w 切换到编辑状态
点esc 再 :wq 来保存退出
$ git add first_git_file.txt
$ git commit -m "提交的说明"
代码回滚
git status命令看看结果:
$ git diff first_git_file.txt(输出中+号绿色显示的就是修改或新增的内容,-号红色显示的就是去掉或被修改的内容)
$ git log 查看每次的修改
$ git log --pretty=oneline 查看每次的修改,并一行展示
命令窗口没关时:
$ git reset --hard HEAD^ 把当前版本回退到上一个版本
$ git reset --hard 4459657 回滚到指定版本
命令窗口已经关闭过:
$ git reflog 记录你的每一次命令
$ git reset --hard 4459657 回滚到指定版本
$ cat README cat命令一个最简单的用处是显示文本文件的内容。例如,我们想在命令行看一下README文件的内容,可以使用命令:
Git Stash
git stash: 备份当前的工作区的内容,从最近的一次提交中读取相关内容,让工作区保证和上次提交的内容一致。同时,将当前的工作区内容保存到Git栈中。
git stash pop: 从Git栈中读取最近一次保存的内容,恢复工作区的相关内容。由于可能存在多个Stash的内容,所以用栈来管理,pop会从最近的一个stash中读取内容并恢复。
git stash list: 显示Git栈内的所有备份,可以利用这个列表来决定从那个地方恢复。
git stash clear: 清空Git栈。此时使用gitg等图形化工具会发现,原来stash的哪些节点都消失了。
关于Git Stash的详细解释,适用场合,这里做一个说明:
使用场合了:当前工作区内容已被修改,但是并未完成。这时Boss来了,说前面的分支上面有一个Bug,需要立即修复。可是我又不想提交目前的修改,因为修改没有完成。但是,不提交的话,又没有办法checkout到前面的分支。此时用Git Stash就相当于备份工作区了。然后在Checkout过去修改,就能够达到保存当前工作区,并及时恢复的作用。
但是,stash pop 出来的内容只是你上次stash时候的内容,那个时候你还没有修复这个Bug。所以此时的内容不会包含你修复那个Bug的内容,此时要用cherry-pick来通过增量的方法将修复的内容合并到新版本上,如果有冲突需要手动解决。 会包含.如果冲突了.会提示一个merge.需要手动解决...
git merge
git merge 用来做分支合并,将其他分支中的内容合并到当前分支中。比如分支结构如下:
master
/
C0 ---- C1 ---- C2 ---- C4
\
C3 ---- C5
\
issueFix
当前分支是master
$ git checkout master
把issueFix中的内容Merge进来:
$ git merge issueFix
如果没有冲突的话,merge完成。有冲突的话,git会提示那个文件中有冲突,比如有如下冲突:
<<<<<<< HEAD:test.c
printf (“test1″);
=======
printf (“test2″);
>>>>>>> issueFix:test.c
可以看到 ======= 隔开的上半部分,是 HEAD(即 master 分支,在运行 merge 命令时检出的分支)中的内容,下半部分是在 issueFix 分支中的内容。解决冲突的办法无非是二者选其一或者由你亲自整合到一起。比如你可以通过把这段内容替换为下面这样来解决:
printf (“test2″);
这个解决方案各采纳了两个分支中的一部分内容,而且删除了 <<<<<<<,=======,和>>>>>>> 这些行。在解决了所有文件里的所有冲突后,运行 git add 将把它们标记为已解决(resolved)。因为一旦暂存,就表示冲突已经解决。如果你想用一个有图形界面的工具来解决这些问题,不妨运行 git mergetool,它会调用一个可视化的合并工具并引导你解决所有冲突
http://www.cnblogs.com/alex3714/articles/5930846.html
浙公网安备 33010602011771号