1.初始化git库
git reset --hard HEAD^
git reflog 查看最新版本的HEAD^id
git reset --hard HEAD^
8.当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令
git checkout -- file
9.当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD <file>,第二步按第8条操作
10.删除文件
git rm test.txt
git commit -m "remove test.txt"
如果删错了,因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本
如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:
$ ssh-keygen -t rsa -C "youremail@example.com"
你需要把邮件地址换成你自己的邮件地址,然后一路回车,使用默认值即可,由于这个Key也不是用于军事目的,所以也无需设置密码。
如果一切顺利的话,可以在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,
关联后,使用命令git push -u origin master第一次推送master分支的所有内容;
此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改;
13.用命令git clone克隆一个本地库:
git clone git@github.com:michaelliao/gitskills.git
14.我们创建dev分支,然后切换到dev分支:
$ git checkout -b dev
Switched to a new branch 'dev'
git checkout命令加上-b参数表示创建并切换,相当于以下两条命令:
$ git branch dev
$ git checkout dev
Switched to branch 'dev'
然后,用git branch命令查看当前分支:
$ git branch
git branch命令会列出所有分支,当前分支前面会标一个*号。
然后,我们就可以在dev分支上正常提交,比如对readme.txt做个修改,加上一行:
Creating a new branch is quick.
然后提交:
$ git add readme.txt
$ git commit -m "branch test"
[dev b17d20e] branch test
1 file changed, 1 insertion(+)
现在,dev分支的工作完成,我们就可以切换回master分支:
$ git checkout master
现在,我们把dev分支的工作成果合并到master分支上:
$ git merge dev
合并完成后,就可以放心地删除dev分支了:
$ git branch -d dev
git pull <远程主机> <远程分支>:<本地分支>
如果省略本地分支,则将自动合并到当前所在分支上。如下:
git pull origin master
git init
2.添加文件到提交区git add test.txt
3.提交文件git commit -m '初始化版本'
4.查看状态git status
5.查看修改的内容git diff test.txt
6.版本回退git reset --hard HEAD^
注:HEAD^是一个版本的id
7.如果已经回退到老版本,又想回到最新的版本git reflog 查看最新版本的HEAD^id
git reset --hard HEAD^
8.当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令
git checkout -- file
9.当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD <file>,第二步按第8条操作
10.删除文件
git rm test.txt
git commit -m "remove test.txt"
如果删错了,因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本
git checkout -- test.txt
11.第1步:创建SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:
$ ssh-keygen -t rsa -C "youremail@example.com"
你需要把邮件地址换成你自己的邮件地址,然后一路回车,使用默认值即可,由于这个Key也不是用于军事目的,所以也无需设置密码。
如果一切顺利的话,可以在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,
可以放心地告诉任何人。
12.要关联一个远程库,使用命令git remote add origin git@server-name:path/repo-name.git;关联后,使用命令git push -u origin master第一次推送master分支的所有内容;
此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改;
13.用命令git clone克隆一个本地库:
git clone git@github.com:michaelliao/gitskills.git
14.我们创建dev分支,然后切换到dev分支:
$ git checkout -b dev
Switched to a new branch 'dev'
git checkout命令加上-b参数表示创建并切换,相当于以下两条命令:
$ git branch dev
$ git checkout dev
Switched to branch 'dev'
然后,用git branch命令查看当前分支:
$ git branch
git branch命令会列出所有分支,当前分支前面会标一个*号。
然后,我们就可以在dev分支上正常提交,比如对readme.txt做个修改,加上一行:
Creating a new branch is quick.
然后提交:
$ git add readme.txt
$ git commit -m "branch test"
[dev b17d20e] branch test
1 file changed, 1 insertion(+)
现在,dev分支的工作完成,我们就可以切换回master分支:
$ git checkout master
现在,我们把dev分支的工作成果合并到master分支上:
$ git merge dev
合并完成后,就可以放心地删除dev分支了:
$ git branch -d dev
15.用git log --graph命令可以看到分支合并图
16.合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。git merge --no-ff -m "merge with no-ff" dev
17.关联远程库
git remote add origin git@gitee.com:liaoxuefeng/learngit.git
18.删除远程库git remote rm origin
19.推送分支git push origin master 或git push -u origin master
20.拉取分支git pull <远程主机> <远程分支>:<本地分支>
如果省略本地分支,则将自动合并到当前所在分支上。如下:
git pull origin master