git

Posted bailaowu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了git相关的知识,希望对你有一定的参考价值。

1.安装git

在命令行直接输入:git,查看结果,有没有安装。
如果没有安装,sudo apt install git

2.设置姓名和邮箱及命令行输出颜色`
git config --global user.name "Mike"
git config --global user.email "[email protected]"
git config --global color.ui auto`

3.创建 SSH Key
ssh-keygen -t rsa -C "[email protected]"
* 显示:
Generating public/private rsa key pair.
Enter file in which to save the key
(/Users/your_user_directory/.ssh/id_rsa): 按回车键
Enter passphrase (empty for no passphrase): 输入密码3307086
Enter same passphrase again: 再次输入密码

4.在github网站上注册账号并登陆
5.在GitHub中添加公开密钥,今后就可以用私有密钥进行认证了。
6.用手中的私人密钥与GitHub进行认证和通信
ssh -T [email protected]

7.在github建立仓库
8.在命令行clone仓库
git clone [email protected]:zrunwei/HelloWorld.git(ssh传输协议)
git clone https://github.com/zrunwei/HelloWorld [myHelloWorld](http传输协议)

9.编写代码
10.将文件加入暂存区
git add xxx
git add . (提交所有)

11.提交,把保存在暂存区的文件实际保存到仓库的历史记录中,这样我们就可以在工作树中复原文件
git commit -m xxx
-m 的参数xxx称作提交信息,是对这个提交的概述
修改上一次的提交信息:git commit --amend

12.合并add和提交两步
git commit -am xxx
git commit -a -m xxx

13.合并再次提交为一次提交,即更改历史
git rebase -i HEAD~2(注意2前面是~)
然后会打开一个文件,把想要修改的提交的‘pick‘改为‘fixup‘

14.执行push
git push
GitHub上的仓库就会被更新。

1.在命令行建立一个用来作为git仓库的目录
mkdir xxx

2.初始化仓库,这样就可以使用git进行版本管理
git init

3.查看仓库状态
git status
git status -s
git status --short
新添加的未跟踪文件前面有??标记,新添加到暂存区中的文件前面有A标记,修改过的文件前面有M标记。你可能注意到了M有两个可以出现的位置,出现在右边的M表示该文件被修改了但是还没放入暂存区,出现在靠左边的M表示该文件被修改了并放入了暂存区。

3.1忽略文件
创建一个名为.gitignore的文件,列出要忽略的文件模式。
来看一个实际的例子:
$ cat .gitignore
*.[oa]
*~
第一行告诉 Git 忽略所有以 .o或 .a结尾的文件。一般这类对象文件和存档文件都是编译过程中出现的。第二行告诉 Git 忽略所有以波浪符(~)结尾的文件,许多文本编辑软件(比如 Emacs)都用这样的文件名保存副本。此外,你可能还需要忽略 log,tmp 或者 pid 目录,以及自动生成的文档等等。要养成一开始就设置好.gitignore 文件的习惯,以免将来误提交这类无用的文件。

4.git diff
git diff
比较工作目录和暂存区间的差异

git diff HEAD
比较工作目录与仓库间的差别

git diff --cached(git diff --staged)
比较暂存区和仓库的差别

5.建立一个文件,并把它添加到暂存区,然后查看仓库状态
6.取消对这个文件的暂存
git rm <文件>...
git rm --cached <文件>...

7.再把这个文件加入暂存区
8.提交
9.丢弃提交
git checkout <文件>...

10.移除文件
从git仓库中删除文件,然后提交

git rm xxx(git rm -f xxx 也可以)

从暂存区删除文件

git rm -f xxx 强制删除

上面都会同时删除本地文件,如果不想删除本地文件,不
想让Git继续跟踪,用下面的命令

git rm --cached xxx

11.文件改名
$ git mv file_from file_to

或者

mv README.md README
git rm README.md
git add README

11.查看提交日志
git log
git log --pretty=short
git log <文件>
git log -p 查看文件的改动

12.回溯后查看提交日志
git reflog

1.查看所有分支
git branch
git branch -a 查看远程仓库和本地仓库的分支信息

2.创建分支
git branch xxx

3.删除分支
git branch -d(或D) xxx

4.切换分支
git checkout xxx
git checkout -(切换到上一个分支)

5.创建并切换分支
git checkout -b

6.使用分支
在一个分支正常开发,修改添加文件,然后执行add及提交,代码就会被提交到此分支,不断对一个分支提交,称作"培育分支"
分支的修改不会影响master分支

7.合并分支
git merge
git merge --no--ff 分支名
--no-ff是为了在历史记录中记录下本次分支合并(注意,ff前面只有一个杠)

8.以图表形式查看分支提交
git log --graph

9.回溯历史版本
先通过git log --graph查看hash码
再git reset --hard hash码

10.推进历史版本
先通过git reflog查看hash码
再git reset --hard hash码(只要输入前四位就可以执行)

推送至远程仓库
1.在github上新建一个远程仓库,为防止混淆,与本地仓库名保持一致,且不要勾选Initialize this repository with a README 选项
2.把新建的远程仓库设置为本地仓库的远程仓库

git remote add origin [email protected]:github用户名/github上的仓库名.git

3.推送至远程仓库
3.1推送至远程仓库的master分支

git push -u origin master

3.2推送至远程仓库master分支以外的分支

切换到分支
git push -u origin 分支名

获取远程仓库
1.切换到任意一个另外的目录并clone仓库,默认是master仓库
2.获取远程的xxx分支

git checkout -b xxx origin/xxx
注意:origin前面没有/

3.修改文件
4.推送

git push

获取最新的远程仓库分支
回到最开始的目录
git pull origin xxx(分支名)

pull request
1.在github找到对方的仓库,点击fork按钮

会回到自己的同名仓库

2.再回到命令行,并clone这个fork过来的仓库,并修改,add,提交
3.推送并返回github,查看修改

git push

创建远程分支(和本地分支同名)
git push origin xxx
同时也会把最新代码push到远程

仓库的维护
Fork或clone来的仓库,一旦放置不管就会离最新的源代码越来越远。
通常来说clone来的仓库实际上与原仓库并没有任何关系。所以我们需要将原仓库设置为远程仓库,从该仓库获取数据与本地仓库进行合并(merge),让本地仓库的源代码保持最新状态

1.在github fork 仓库 github.com/octocat/Spoon-Knife,并在本地clone
2.给原仓库设置upstream的名称,将其作为远程仓库
git remote add upstream git://github.com/octocat/Spoon-Knife.git
这个环境下只需要设定一次。
3.获取最新数据
git fetch upstream
4.与自己仓库的分支进行合并
git merge upstream/master
将upstream/master分支与当前分支(master)合并







































































































以上是关于git的主要内容,如果未能解决你的问题,请参考以下文章

Git 学习路线

从0到1带你掌握git(一分钟掌握git)--git如何下载?git如何使用?git是什么?git怎么获取文件?

Git认识与使用 Git

Git认识与使用 Git

Git认识与使用 Git

Git认识与使用 Git