重新认识git,新手小妖攻略。
关于git
在学校实验室的时候,用过一段时间的git,但是并没有过多的深入其中研究他的核心思想和原理,只是简单的会几个指令。当然在利用指令的时候无论是windows的doc 还是mac 的terminal 都不要忘记使用tab 键进行补全,简直好用到爆。推荐一个终端工具iTerm2,非常好用。
<pre>
1.git clone //将远程分支克隆到本地
2.git push //将本地修改的内容提交到远程服务器
3.git pull //将远程服务器内容拉到本地,并且强制合并到本地
4.git checkout //检出,最常见的就是创建分支和切换分支
</pre>
很清晰的记得,当时就只会这几个指令。遇到冲突也只会请教其他同学或者老师。紧接着,那时候就抛弃了svn,选择git ,然后开始使用各种git 客户端,sourcetree,git-gui,github-client,等等。一切客户端都是对指令的封装和ui 化,其实没有明白原理单纯的使用客户端,会让学习git 的人,很难明白其原理,也对指令不太熟悉。
除了上面的一些指令,我们继续学习一些常用的指令。
1.git status
// 查看本地,文件修改的状态。这个是非常有用的,每次提交之前检查本次提交的内容
git-status.png
2.git add
//将工作区修改的文件添加到缓冲区,可以多次使用(好了,jira 上有bug爆出,后面在更新)
3.git commit
//将缓冲区的文件添加到本地分支中
我平时一般用-m参数进行添加本次提交的注释,git commit -m "注释"(这种方式需要先git add 修改过的文件或者新加的文件),当然也会看到同事用git commit -a -m "注释"(这种方式,能提交修改过,但是没有添加到缓存区的文件,也就是git add 和git commit -m 两步合并)。你可以去试试
4.git fetch
//从远程服务器拉取文件到本地,与本地版本进行比较,但是不会merge 文件(合并文件)。
5.git merge
//合并分支 远程分支和本地合并 本地分支合并之后,需要git push 才能完成远程分支的合并
6.git pull
// 这种方式,从远程分支拉取文件,强制和本地合并。
7.git push
//将本地修改的文件提交到远程服务器
8.git stash
//对当前的暂存区和工作区状态进行保存。 我本人用这个指令,其实是因为有时候本次提交的内容和远程分支有冲突不能合并,于是就先用git stash把当前的状态进行保存,修改冲突之后,在进行git stash pop 取出保持的状态,然后再进行提交。
9.git log
//查看提交的日志
好了,在整个工作过程中用到最多的指令就是以上这几种。接下来说说几个用得比较少,但是满有用的指令
10.git branch
//这个指令需要更很多参数
不带参数
-a //查看本地分支
-r // 查看远程分支
git branch new_branch //在本地创建新的分支
-d branchName //删除本地分支
-d -r branchName // 删除远程分支
(一定要用tab 进行补全哦)
11.git diff
//可以是比较两个分支的不同,也可以是同一个分支head 的比较,或者文件。
12.git reset
//回滚到某个指定的版本,可以指定到对应的分支和head。都可以
git reset.png嗯。就这样,我能理解的就是这些指令了,等后续再继续更新哈。
13.在本地创建分支然后提交到服务器上
1.git checkout -b branchName :创建本地分支
2.git push origin branchName : 将本地分支push远程分支
3.本地创建内容,第一次提交到远程分支
git push --set-upstream origin branchName
14.删除分支
git branch -d xxx
15.切换git服务器
进入到本地项目目录下,使用
git remote set-url origin 项目地址 // 切换
git remote show origin 查看切换状态