标签:
mkdir:创建文件
pwd:显示当前目录
ls -ah:查看当前文件子目录的内容
git init:把当前目录变成Git可以管理的仓库;
git add:告诉Git,把文件添加到仓库;可反复多次使用,添加多个文件。
git commit -m "":m后面输入的是本次提交的说明
:1个文件被修改,2行语句新插入。
git status:命令可以让我们时刻掌握仓库当前的状态
:readme.txt被修改过了,但还没有准备提交的修改。
git diff:如果git status
告诉你有文件被修改过,用git diff
可以查看修改内容。git diff HEAD --readme.txt:查看最新版本的区别。
:可以从上面的命令输出看到,我们在第一行添加了一个“distributed”单词。
git log:命令显示从最近到最远的提交日志,如果嫌输出信息太多,可以输:git log --pretty=oneline
git reset --hard HEAD^:回退到上一版本、上上一个版本就是HEAD^^
,当然往上100个版本写100个^
比较容易数不过来,所以写成HEAD~100
。(回到过去)
git reset --hard 3628164:举例,(回到未来)
git reflog --你回退到了某个版本,关掉了电脑,第二天早上就后悔了,找不到新版本的commit id,用这个命令。
(可以用git status提示自己)
git checkout -- file:场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时
git reset HEAD file:场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步:第一步用命令git reset HEAD file
,就回到了场景1,第二步按场景1操作。
场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。
rm命令,删除文件后两个选择
1.一是确实要从版本库中删除该文件,那就用命令git rm test.txt
删掉,并且git commit
2. 另一种情况是删错了,因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本:$ git checkout -- test.txt
1.添加远程库
①:GitHub上创建一个learngit仓库(例子),我们根据GitHub的提示,在本地的learngit
仓库下运行命令:
$ git remote add origin git@github.com:muyunyun/learngit.git
添加后,远程库的名字就是
origin
,这是Git默认的叫法,也可以改成别的,但是origin
这个名字一看就知道是远程库。
②:$ git push -u origin master(
把本地库的内容推送到远程,用git push
命令,实际上是把当前分支master
推送到远程。
由于远程库是空的,我们第一次推送master
分支时,加上了-u
参数,Git不但会把本地的master
分支内容推送的远程新的master
分支,还会把本地的master
分支和远程的master
分支关联起来
)
③:从现在起,只要本地作了提交,就可以通过命令
$ git push origin master
2.从远程库克隆
假如要gitskills的仓库克隆到本地:
$ git clone git@github.com:muyunyun/gitskills.git
GitHub给出的地址不止一个,还可以用https://github.com/michaelliao/gitskills.git
这样的地址,但通过ssh
支持的原生git
协议速度最快。
创建与合并分支:
git branch:查看分支;
git branch <name>:创建分支;
git checkout <name>:切换分支;
git checkout -b <name>:创建+切换分支;
git merge <name>:合并某分支到当前分支;
git branch -d <name>:删除分支
分支管理策略:
git merge --no-ff -m "merge with no-ff" <name>:从分支历史上可以看出分支信息
Bug分支:
修复bug时,我们会通过创建新的bug分支进行修复,然后合并,最后删除;
当手头工作没有完成时,先把工作现场git stash
一下,然后去修复bug,修复后,再git stash pop
,回到工作现场。
多人协作:
查看远程库信息,使用git remote -v
;
本地新建的分支如果不推送到远程,对其他人就是不可见的;
从本地推送分支,使用git push origin branch-name
,如果推送失败,先用git pull
抓取远程的新提交;
在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name
,本地和远程分支的名称最好一致;
建立本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name
;
从远程抓取分支,使用git pull
,如果有冲突,要先处理冲突。
命令git tag <name>
用于新建一个标签,默认为HEAD
,也可以指定一个commit id;
git tag -a <tagname> -m "blablabla..."
可以指定标签信息;
git tag -s <tagname> -m "blablabla..."
可以用PGP签名标签;
命令git tag
可以查看所有标签。
推荐下廖雪峰老师的Git教程。
标签:
原文地址:http://www.cnblogs.com/MuYunyun/p/5722658.html