建立远程仓库

建立远程仓库,无非就是想把本地创建的git仓库上传到github仓库,达到本地和github的同步,首先进入github官网创建一个账号,然后进行项目的创建 ,  点击“Create repository”按钮

然后使用github创建好的SSH 进行本地仓库的克隆

首先找到本地的一个目录,使用 git clone 本项目在github上的SSH地址

克隆好之后,把你本地创建好的项目中的内容复制到本地克隆好的仓库的目录下

克隆好之后,把你本地创建好的项目中的内容复制到本地克隆好的仓库的目录下

然后使用 git add -A  进行全部内容的添加,先添加到暂存区,在使用 git commit -m"this is first commit"  把暂存区的内容提交到本地仓库中,在使用push 到远程仓库中,  达到同步的目的。



创建与合并分支

查看分支:git branch

创建分支:git branch name

切换分支:git checkout name

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

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

删除分支:git branch -d name

用git log --graph命令可以看到分支合并图.

git merge --no-ff -m"merge with no-ff" dev

--no-ff 表示不使用Fast forward快速模式合并分支,如果使用这种方法 因为本次合并要创建一个新的commit,所以加上-m参数,把commit描述写进去。

合并后,我们用git log看看分支历史:

$ git log --graph --pretty=oneline --abbrev-commit

合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并

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

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

工作现场还在,Git把stash内容存在某个地方了,但是需要恢复一下,有两个办法:

一是用git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除;

另一种方式是用git stash pop,恢复的同时把stash内容也删了

用git stash list命令查看隐藏的工作区

如果要丢弃一个没有被合并过的分支,可以通过git branch -D 强行删除


要查看远程库的信息,用git remote

或者,用git remote -v显示更详细的信息

当你的小伙伴从远程库clone时,默认情况下,你的小伙伴只能看到本地的master分支。不信可以用git branch命令看看

现在,你的小伙伴要在dev分支上开发,就必须创建远程origin的dev分支到本地,于是他用这个命令创建本地dev分支

$git checkout -b dev origin/dev

推送失败,因为你的小伙伴的最新提交和你试图推送的提交有冲突,解决办法也很简单,Git已经提示我们,先用git pull把最新的提交从origin/dev抓下来,然后,在本地合并,解决冲突,再推送

git pull也失败了,原因是没有指定本地dev分支与远程origin/dev分支的链接,根据提示,设置dev和origin/dev的链接

$ git branch--set-upstream dev origin/dev

$git pull

创建标签

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

git tag -a name -m "blablabla..."可以指定标签信息

git tag -s name -m "blablabla..."可以用PGP签名标签

命令git tag可以查看所有标签

$git tag v1.0   创建一个标签  

$git tag v0.96224937  给特定的commit id 添加标签

$ gitshowv0.9  查看标签内容

$git tag -d v0.1  删除标签

因为创建的标签都只存储在本地,不会自动推送到远程。所以,打错的标签可以在本地安全删除。

如果要推送某个标签到远程,使用命令$git push origin v1.0

或者,一次性推送全部尚未推送到远程的本地标签:  $ git push origin --tags

如果标签已经推送到远程,要删除远程标签就麻烦一点,先从本地删除:$git tag -d v0.9

然后,从远程删除。删除命令也是push,但是格式如下:$git push origin:refs/tags/v0.9

要看看是否真的从远程库删除了标签,可以登陆GitHub查看


让Git显示颜色,会让命令输出看起来更醒目:$git config --global color.uitrue

如果你你发现,.gitignore写得有问题,需要找出来到底哪个规则写错了,可以用git check-ignore命令检查

忽略某些文件时,需要编写.gitignore;.gitignore文件本身要放到版本库里,并且可以对.gitignore做版本管理!


配置别名

如果敲git st就表示git status那就简单多了

我们只需要敲一行命令,告诉Git,以后st就表示status:

$git config --global alias.st status

--global参数是全局参数,也就是这些命令在这台电脑的所有Git仓库下都有用

命令git reset HEAD file可以把暂存区的修改撤销掉(unstage),重新放回工作区。既然是一个unstage操作,就可以配置一个unstage别名:

$git config --globalalias.unstage'reset HEAD'

当你敲入命令:$git unstage test.py

实际上Git执行的是:$ git reset HEAD test.py

配置一个git last,让其显示最后一次提交信息:$git config --global alias.last 'log -1'

配置Git的时候,加上--global是针对当前用户起作用的,如果不加,那只针对当前的仓库起作用。

配置文件放哪了?每个仓库的Git配置文件都放在.git/config文件中:

$cat .git/config

别名就在[alias]后面,要删除别名,直接把对应的行删掉即可。

而当前用户的Git配置文件放在用户主目录下的一个隐藏文件.gitconfig中:

这是一个好东西

git config --globalalias.lg"log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"

$git lg























最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 远程仓库 到目前为止,我们已经掌握了如何在Git仓库里对一个文件进行时光穿梭,你再也不用担心文件备份或者丢失的问题...
    归云丶阅读 1,980评论 0 5
  • 1. 安装 Github 查看是否安装git: $ git config --global user.name "...
    Albert_Sun阅读 13,722评论 9 163
  • 1.git的安装 1.1 在Windows上安装Git msysgit是Windows版的Git,从https:/...
    落魂灬阅读 12,716评论 4 54
  • 1 林战生活的地方叫龙锦市,四季等长,昼夜分明。因为靠着海,吹来的风带着咸腥味,空气很干净没有经过工业的污染。 在...
    周霸爷阅读 684评论 2 8