#因CSDN上传图片不方便,这里放一个原文笔记(有道云笔记的)的链接,想要看图文的点我看图文,以下只是文字部分。



##一、远程仓库与多人协作
####1、从远程仓库clone项目到本地仓库
https://github.com/
注册登陆后,创建新的仓库:

然后 Create repository
在任意位置创建一个git本地仓库

进入本地仓库,右键空白处,选择Git Bash Here(Git 命令行)

然后进行设置:在命令行输入:
$ git config --global user.name “Your Name”
$ git config --global user.email “email@example.com”

因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址。
注意git config命令的–global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。
然后使用 git init 命令,将此文件夹变成一个git仓库。

会发现刚才的文件夹内多了个.git 文件夹
如果没有看到.git文件夹,因为它是隐藏的文件夹,可能没有打开查看隐藏的文件夹,在文件夹设置中选择查看隐藏的文件就ok了

接下来我们要将本地仓库和远程仓库进行关联。
$ git remote add origin https://github.com/MZ8023/GitTest.git

接下来我们要把远程仓库(git网站刚才创建的或者别人创建好的)上的项目克隆下来
$ git clone https://github.com/MZ8023/GitTest.git
显示类似如下内容即成功,如若出现fatal;error字样则表示未成功,并会提示你原因。

*小提示:git clone 直接加网址就好(此网址可以在远程仓库中找到)

此时我们查看本地仓库,发现多了一个文件夹,这个文件夹就是远程仓库上的项目总文件夹,进入该文件夹,可以看到所有的文件(本项目目前只有一个README文件)

上面完成了从远程仓库clone项目到本地仓库(一般只有第一次加入项目需要用到这个命令,之后的命令都是进行代码的上传、下载,分支的切换、合并等)

####2、项目的更新及下载
上面我们将项目clone下来后,一般需要在本地继续编写代码,修改项目,我们来做一个模拟:
首先修改我们本地的README文件,并且新建一个test.txt文件,模拟在本地仓库修改了项目。

接下来我们代码写好后,要上传到远程仓库,进行代码的更新同步。
进入到项目根目录
cd GitTest

首先学习一个命令
$ git status

git status命令可以让我们时刻掌握仓库当前的状态,上面的命令输出告诉我们,READEME被修改过了,并且新增了一个test.txt文件,但还没有提交修改。

然后我们正式开始上传
首先第一个命令:
$ git add .
它会把工作时的所有变化提交到暂存区(暂存仓库),包括文件内容修改以及新文件,但不包括被删除的文件。

此时我们查看下状态:
$ git status

提示我们修改了READEME,添加了新的文件,可以提交了

接下来我们需要更新同步到远程仓库
第一步:提交
$ git commit -m “本次提交描述”
该命令会将git add .存入暂存区修改内容提交至本地仓库中,若文件未添加至暂存区,则提交时不会提交任何修改。

此时我们查看下状态:
$ git status

Git告诉我们当前没有需要提交的修改,并且工作区是干净的。
第二步:推到远程仓库
$ git push origin master
其中origin代表的是远程仓库(固定不变),master位置放的是分支的名字,master是主分支。

成功,远程仓库也看到了

=======================================================================
####3、多人合作
牢记四句代码
git pull origin master
git add .
git commit -m “xxx”
git push origin master
当你想上传时 先pull 就是拉下来远程仓库的代码, 然后再提交自己的代码
例如:我们要删除test.txt文件
在本地删除后 进入命令行

四步

远程仓库也没了

##二、分支相关
当你写一个模块的代码的时候,为了避免将其他所有模块打乱,或者误操作对代码造成影响等情况。
分支的代码可以和主分支(master)代码相同,一般是先把主分支代码复制到其他分支,然后在其他分支上进行开发新模块,等到其他分支上的代码模块都没有问题的时候,再合并到主分支中,主分支相当于代码的备份。可以有多个分支,多人同时开发不同的模块。
####1、创建分支
先在本地创建一个名叫 xsx 的分支
$ git branch xsx

然后我们可以查看所有的分支
$ git branch

前面带*的就是你当前所使用的分支,接下来我们切换到xsx分支进行开发
$ git checkout xsx

当前我们就进入了xsx分支,此时我们本地仓库代表的就是xsx分支,然后我们在xsx分支中开发,比如新建个ttt.html文件

然后提交代码到远程仓库

注意一定要推送到xsx分支
可以发现远程仓库中master分支下并没有 ttt.html

切换到xsx分支发现里面含有 ttt.html

当我们在xsx分支编写完此模块所有的代码并测试功能后,我们需要将此分支合并到master主分支中,进行代码整合。
首先切换到 master分支
$ git checkout master

然后将 xsx分支 合并到此时的master分支
$ git merge xsx

合并成功!此时xsx分支的任务完成了,我们可以将其删除,删除分支:
$ git branch -d xsx ------ -d 代表 delete

##三、版本回退与日志查看
####1、日志查看
有的时候我们需要查看下最近都有谁提交了什么,或者忘记自己之前写了什么,去查看下历史提交记录之类的。
$ git log

在这里我们能看到最近提交的信息(时间,message,版本号等),其中commit 后面的就是版本号。
####2、版本回退
当代码一团糟,想要重写的时候,可以使用版本回退,先用git log查看最近提交的版本,找到一个你想回退的版本,复制它的版本号,然后输入命令。
$ git reset --hard 版本号

例如:我们先做几次提交

然后再来一次
修改了 新建文本文档 并没有新增文件的时候 可以简化命令

然后我们查看日志

我们现在想回滚到 新增新建文本文档12 那次
选择右键复制版本号(看准了 版本号在文字的上方)

输入命令
$ git reset --hard 5b252231c16141daf4cb8f41663cd10b08f0db98

在看我们的本地仓库

修改 新建文本文档 已经不见了 内容消失了 完全回到刚刚新建的时候了。

==============================================================

##Git常用命令
git add . # 将所有修改过的工作文件提交暂存区
git rm # 从版本库中删除文件
git reset --hard # 恢复最近一次提交过的状态,即放弃上次提交后的所有本次修改
git diff # 比较当前文件和暂存区文件差异
git diff # 比较两次提交之间的差异
git diff … # 在两个分支之间比较
git log #查看提交统计信息
git log # 查看该文件每次提交记录
git branch -d # 删除某个分支
git branch -D # 强制删除某个分支 (未被合并的分支被删除的时候需要强制)
git branch # 查看本地分支
git branch -r # 查看远程分支
git branch <new_branch> # 创建新的分支
git merge # 将branch分支合并到当前分支
git pull origin master
git stash
git stash pop
git stash list # 列所有stash
git commit -m “xxx”
git push origin master # 将本地主分支推到远程主分支

git remote -v # 查看远程服务器地址和仓库名称
git remote show origin # 查看远程服务器仓库状态
git remote add origin git@ github:robbin/robbin_site.git # 添加远程仓库地址
git remote set-url origin git@ github.com:robbin/robbin_site.git # 设置远程仓库地址(用于修改远程仓库地址)
git remote rm # 删除远程仓库

查看、添加、提交、删除、找回,重置修改文件
git help # 显示command的help
git show # 显示某次提交的内容 git show KaTeX parse error: Expected 'EOF', got '#' at position 21: …t co -- <file> #̲ 抛弃工作区修改 git co…id> # 恢复某次提交的状态,恢复动作本身也创建次提交对象
git revert HEAD # 恢复最后一次提交的状态
查看文件diff
git diff # 比较当前文件和暂存区文件差异 git diff
git diff # 比较两次提交之间的差异
git diff … # 在两个分支之间比较
git diff --staged # 比较暂存区和版本库差异
git diff --cached # 比较暂存区和版本库差异
git diff --stat # 仅仅比较统计信息
查看提交记录
git log git log # 查看该文件每次提交记录
git log -p # 查看每次详细修改内容的diff
git log -p -2 # 查看最近两次详细修改内容的diff
git log --stat #查看提交统计信息
tig
Mac上可以使用tig代替diff和log,brew install tig
Git 本地分支管理
查看、切换、创建和删除分支
git br -r # 查看远程分支
git br <new_branch> # 创建新的分支
git br -v # 查看各个分支最后提交信息
git br --merged # 查看已经被合并到当前分支的分支
git br --no-merged # 查看尚未被合并到当前分支的分支
git co # 切换到某个分支
git co -b <new_branch> # 创建新的分支,并且切换过去
git co -b <new_branch> # 基于branch创建新的new_branch
git co $id # 把某次历史提交记录checkout出来,但无分支信息,切换到其他分支会自动删除
git co $id -b <new_branch> # 把某次历史提交记录checkout出来,创建成一个分支
git br -d # 删除某个分支
git br -D # 强制删除某个分支 (未被合并的分支被删除的时候需要强制)
分支合并和rebase
git merge # 将branch分支合并到当前分支
git merge origin/master --no-ff # 不要Fast-Foward合并,这样可以生成merge提交
git rebase master # 将master rebase到branch,相当于: git co && git rebase master && git co master && git merge
Git补丁管理(方便在多台机器上开发同步时用)
git diff > …/sync.patch # 生成补丁
git apply …/sync.patch # 打补丁
git apply --check …/sync.patch #测试补丁能否成功
Git暂存管理
git stash # 暂存
git stash list # 列所有stash
git stash apply # 恢复暂存的内容
git stash drop # 删除暂存区
Git远程分支管理
git pull # 抓取远程仓库所有分支更新并合并到本地
git pull --no-ff # 抓取远程仓库所有分支更新并合并到本地,不要快进合并
git fetch origin # 抓取远程仓库更新
git merge origin/master # 将远程主分支合并到本地当前分支
git co --track origin/branch # 跟踪某个远程分支创建相应的本地分支
git co -b <local_branch> origin/<remote_branch> # 基于远程分支创建本地分支,功能同上
git push # push所有分支
git push origin master # 将本地主分支推到远程主分支
git push -u origin master # 将本地主分支推到远程(如无远程主分支则创建,用于初始化远程仓库)
git push origin <local_branch> # 创建远程分支, origin是远程仓库名
git push origin <local_branch>:<remote_branch> # 创建远程分支
git push origin :<remote_branch> #先删除本地分支(git br -d ),然后再push删除远程分支
Git远程仓库管理
git remote -v # 查看远程服务器地址和仓库名称
git remote show origin # 查看远程服务器仓库状态
git remote add origin git@ github:robbin/robbin_site.git # 添加远程仓库地址
git remote set-url origin git@ github.com:robbin/robbin_site.git # 设置远程仓库地址(用于修改远程仓库地址)
git remote rm # 删除远程仓库
创建远程仓库
git clone --bare robbin_site robbin_site.git # 用带版本的项目创建纯版本仓库
scp -r my_project.git git@ git.csdn.net:~ # 将纯仓库上传到服务器上
mkdir robbin_site.git && cd robbin_site.git && git --bare init # 在服务器创建纯仓库
git remote add origin git@ github.com:robbin/robbin_site.git # 设置远程仓库地址
git push -u origin master # 客户端首次提交
git push -u origin develop # 首次将本地develop分支提交到远程develop分支,并且track
git remote set-head origin master # 设置远程仓库的HEAD指向master分支
也可以命令设置跟踪远程库和本地库
git branch --set-upstream master origin/master
git branch --set-upstream develop origin/develop


觉得有帮助的小伙伴右上角点个赞~

菜鸟入门级Git简单教程_git

扫描上方二维码关注我的订阅号~