Git命令集---学会这些,让你git中"横行"

1.git init(将本地文件初始化成git可管理的仓库,工作区会出现.git---版本库)

2.git add file/.(将工作区的修改添加到暂存区)

3.git commit -m "注释"(将暂存区的提交到master区;"注释"---本次提交的核心内容,以便别人阅读)

4.git status(查看当前的仓库状态)

5.git log(查看当前的提交日志)

6.git log --pretty=oneline(精简日志信息)

7.git reset --hard HEAD^(版本倒退,^表示倒退一个版本,^^表示倒退两个版本,^^^表示倒退三个版本;倒退四个版本及以上的用阿拉伯数字代替)

8.git reset --hard HEAD commit_id(表示快进到未来的某个版本,commit_id为提交的id)

9.git reflog(记录过往的每次操作)

10.git checkout -- file(撤销工作区的修改)

11.git reset HEAD file(撤销暂存区stage的修改)

12.git rm file(删除git仓库的file)

如何链接远程仓库?这里不做详细说明,请阅读>>https://www.jianshu.com/p/2cbaa5a0da67

Master

           1)条分支都是一条时间线,有每次提交组成。HEAD指向的是master,master指向每次提交

           2)Git用master指向最新提交,再由HEAD指向master,这样就能确定当前分支以及当前的提交点

           3)git branch(查看分支)

           4)git branch (创建分支)

           5)git checkout (切换分支)

           6)git checkout -b (创建+切换分支)

           7)git merge (合并某分支到当前分支)

           8)git branch -d (删除分支)

           9)git log --graph --pretty=oneline --abbrev-commit(--graph分支合并图、--pretty=oneline精简提交信息、--abbrev-commit、只取提交日志的common_id的前7位字符)


--pretty=oneline


--abbrev-commit

分支管理策略:

           1)Fast-forward"快速合并"模式,删除分之后,分支信息通常会消失;

           2)强制禁止"快速合并"模式,即--no-ff模式下合并,git会产生一个新的commit,且分支历史上会有分支信息;

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

bug分支:

           当你在做新功能的时候(还没有完成,不能进行代码提交),突然需要马上处理一个bug。

           git stash:将当前的工作现场储藏起来

           穿件临时分支,解决bug

           git stash list:查看工作现场储藏在哪个地方

           回复工作现场:

                    1)git stash apply(回复后,stash内容不会被删除,git stash drop删除stash内容)

·                   2)git stash pop

Feature分支:

           开发一个新feature,最好创建feature分支

           删除还没有被合并的分支git branch -D (强制删除,将会对其所有的修改)

多人协作:

           多人些协作的情况下,每个人需要从远程仓库与本地的仓库一一对应起来

           git remote查看远程仓库的信息

           git remote -v查看远程仓库的详细信息(包含抓取和推送的地址,必须是有权限的)

推送分支:

           git push origin master(将本地分支推送到远程仓库对应的分支上,master可变)

抓取分支:

           多人写作的情况下,A、B同时git clone克隆了远程仓库的代码(默认只能看到master分支),A需要在另一个分支上修改,需要在本地创建一个与远程仓库想对应的分支,然后,修改push;B页做了同样的修改,并试图push,则提交失败,需要先pull一下,然后在push,结果pull失败,原因是因为,本地的仓库与远程仓库对应的分支没有连接,设置本地与远程分支的链接:git branch--set-upstream origin/,然后pull,pull成功了(自动合并,出现冲突),手动解决冲突,再提交,再push

           git branch--set-upstream dev origin/dev(将本地的分支与远程的分支链接起来)

标签管理:

           作用:生成git版本快照,标签是版本库的快照,但其实他是指向某个commit的指针(类似于分支,但是分支可以移动,标签不可以移动)

           git tag (创建标签,默认情况下是最新提交)

           git tag commit_id

           git show


查看标签信息

           git show  -a/-s -m "标签说明"(还可以带标签说明,-a指定标签    -m添加说明)

           -a代表标签说明        -s代表PGP签名说明

           git tag(查看所有标签)

标签操作:

           git tag -d (删除标签)

           git push origin (推送标签到远程仓库,默认情况下不会自动push)

           git push origin --tags(一次性把未推送的本地仓库标签,推送到远程仓库)

           如果以推送到远程仓库,想要删除

                    1)先本地删除---git tag -d

                    2)再将删除命令push到远程仓库,格式:git push origin :refs/tags/

强大的GIT还可以自定义命令,这种做法,本人不赞成,因为很可能会容易产生错误。

搭建Git服务器://需要Linux系统,建议Debian/Ubuntu/虚拟机

           前提:sudo权限的用户账号

           第一步:$ sudo apt-get install git(安装git)

           第二步:$ sudo adduser git(创建一个git用户,用来运行git服务)

           第三步:公钥(id_rsa.pub)导入到/home/git/.ssh/authorized_keys文件里,一行一个

           第四步:$ sudo git init --bare sample.git(初始化仓库,选定一个目录作为Git仓库),$ sudo chown -R git:git sample.git

           第五步:禁用shell登录,可以通过编辑/etc/passwd文件完成

                          将git:x:1001:1001:,,,:/home/git:/bin/bash改为

                          git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell

                          这样git用户可以正常通过ssh使用git,但无法登录shell,因为为git用户制定的git-shell每次登录自动退出

           第六步:克隆远程仓库

你可能感兴趣的:(Git命令集---学会这些,让你git中"横行")