git本地创建库和本地添加远程库过程

来源:互联网 发布:淘宝店铺套现处罚 编辑:程序博客网 时间:2024/06/05 23:20

使用git(桥)

设置用户名和邮箱:

$ git config --global user.name”用户名”

$ gitconfig –global user.email”邮箱”

创建版本库:

可以选中一个磁盘,如若我选中D盘 $ cd D:

创建一个文件夹 $ mkdir storehouse

进入文件夹 $ cd storehouse

初始化文件夹将其设置为仓库 $ gitinit

$ pwd 命令就是显示当前目录

将文件添加到版本库:

先编写文件 first.txt,并将放到storehouse目录中,然后再使用$ git add first.txt命命令添加到仓库中,最后再提交$ git commit -

m”提交说明”, $ git add 命令可以多次连续使用,添加多个文件。

查看修改状态:

修改前面提交到仓库中的文件并保存后,使用$git status可以看到提示说文件被改变了。git status命令可以让我们时刻掌握仓库当前的状态,

查看修改内容:

$ git diff命令可以查看具体修改了什么内容。

查看历史:

$ git log命令可以查看历史纪录,git log显示从最近到最远的提交日志,$ git log --pretty=oneline命令将日志按行显示,美化效果,这样看着不会太乱。

回退到上一个版本:

$ git reset命令,使用$ git reset --hardHEAD^可以回退到上一个版本,^表示上一个,^^表示上上一个,^太多可以写成HEAD~2或者3或者4等等,分别表示回

到上上版本,上上上版本,以此类推。

回退到新版本:

首先git使用命令$ git reflog来记录每一次命令。

$git reflog

384c1ef HEAD@{0}: reset: moving to 384c1ef

2fd2edc HEAD@{1}: reset: moving to HEAD^

384c1ef HEAD@{2}: commit: sencond hand in

2fd2edc HEAD@{3}: commit (initial): add

可以找到回到到旧版本前面的新版本的id,找到版本号后使用命令:$ git reset --head 版本号,就可以回到上一个版本了。

撤销修改:

命令$ git checkout – 文件名,可以丢弃工作区的修改,有两种情况:第一种是,修改文件修改后还没有放到暂存区,现在撤销修改就是回到与版本库种一模

一样的状态,这种就是丢去工作区的修改;第二种是,已经添加到了暂存区,又作了修改,现在撤销修改,就回到添加到暂存区后的状态。

如若,当修改文件被放到了暂存区,还没有提交,在commit之前发现了这个问题,使用命令:$ git reset HEAD 文件名,可以把暂存取的撤销,放回工作区,

git reset命令既可以回退版本,也可以把缓存区的修改回退到工作区。使用HEAD 时,表示最新版本。

删除文件:

一是从文件管理器中删除文件,$ rm 文件名,二是从版本库中删除文件,使用命令:$ git rm删除文件,并且$ git commit

远程仓库:

首先要到github官网注册一个账号,github网站就是提供Git仓库托管服务的,所以,只要注册一个账号,就可以免费获得github远程仓库。

创建SSH key:

git仓库和github仓库之间传输是通过SSH加密的。创建SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文

件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),

创建SSH Key:命令:$ ssh-keygen -t rsa -C “邮箱地址”,如果一路按enter,就会默认创建key,创建完成后可以在用户主目录看到多了两个文件,id_rsa,id_rsa.pub。

在github上面创建SSH key:打开本地的id_rsa.pub复制里面的内容到github上面创建SSH key,在git bash中输入命令:$ git remote add origin 。。。(后面的地址),就可以添加远程库。

将本地库所有内容推送到远程库: $ gitpush -u origin master。这样就实现了本地库和远程库的链接了。

Git创建分支合并分支,切换分支,删除分支:

$ git check out 命令加上-b参数表示创建并切换分支:$ git checkout -b dev,相当于下面两条命令:$ git branchdev,$ git checkout dev分支创建,并切换后

可以利用$ git branch查看当前分支,$ git branch命令会列出所有分支,当前分支前面会有一个*号,使用$ git merge 分支名,进行合并分支到master上,合并完

成就可以删除分支了,使用命令:$ git branch -d 分支名,删除分支。

查看分支:git branch

创建分支:git branch <name>

切换分支:git checkout <name>

创建+切换分支:git checkout-b <name>

合并某分支到当前分支:git merge <name>

删除分支:git branch -d <name>

查看合共分支的图:

方式一:$ git log --graph

方式二:$ git log --graph--pretty=oneline --abbrev-commit

Bug分支:

修复bug时,我们会通过创建新的bug分支进行修复,然后合并,最后删除;

当手头工作没有完成时,先把工作现场git stash一下,然后去修复bug,修复后,再git stash pop,回到工作现场。

当返回之前的分支,也及修改bug分支之前使用的分支,使用命令$ git status会发现分支为干净的,之前的内容不在了。可以使用命令$ gitstash list查看保存

的工作现场,使用命令$ git stash apply 恢复,但恢复后stash的内容并没有删除,需要使用命令$ git stash drop来删除,另一种方式直接使用$ git stash pop命令

恢复现场,并删除stash

你可以多次stash,恢复的时候,先用git stash list查看,然后恢复指定的stash,用命令:

    $ git stash apply stash@{0}
没有合并的分支,进行强制删除:$ git branch -D 分支名

 

多人协作:

从远程仓库克隆,就是git自动将本地的master分支和远程的master分支对应起来,并且远程仓库的默认名为origin。查看远程库的信息:$ git remote,remote是远程的意

思,要查看更详细的远程仓库信息使用$ git remote -v

上面显示了可以抓取和推送的origin的地址,如果没有权限推送,就看不到push的地址。

推送分支:

也及将本地的分支的所有提交到远程库,推送的时候,要指定本地的分支,这样Git就会将本地的分支推送到远程对应的分支上。使用命令将master分支推送

到远程仓库:$ git push origin master,推送dev分支也是一样的。

查看远程库信息,使用git remote-v;

本地新建的分支如果不推送到远程,对其他人就是不可见的;

从本地推送分支,使用git pushorigin branch-name,如果推送失败,先用git pull抓取远程的新提交;

在本地创建和远程分支对应的分支,使用gitcheckout -b branch-name origin/branch-name,本地和远程分支的名称最好一致;

建立本地分支和远程分支的关联,使用gitbranch --set-upstream branch-name origin/branch-name;

从远程抓取分支,使用git pull,如果有冲突,要先处理冲突。

标签:

命令gittag <name>用于新建一个标签,默认为HEAD,也可以指定一个commit id

git tag -a <tagname> -m "blablabla..."可以指定标签信息;

git tag -s <tagname> -m "blablabla..."可以用PGP签名标签;

命令gittag可以查看所有标签。

命令gitpush origin <tagname>可以推送一个本地标签;

命令gitpush origin --tags可以推送全部未推送过的本地标签;

命令gittag -d <tagname>可以删除一个本地标签;

命令gitpush origin :refs/tags/<tagname>可以删除一个远程标签。

强制覆盖本地

git fetch --all 

git reset --hardorigin/master

git pull