一、Git版本控制

git官网:https://git-scm.com

git淘宝镜像地址:http://npm.taobao.org/mirrors/git-for-windows

工作流程:工作区 ---> 暂存区 ---> 本地仓库 ---> 远程仓库

二、Git环境配置

1 #查看[全局]配置:
2 git config [--global] --list
1 #设置提交代码时的用户名和邮箱:
2 git config [--global] user.name "[name]"
3 git config [--global] user.email "[email address]"
1 #重置用户名和密码
2 git config --replace-all user.name "[name]"
3 git config --replace-all user.email "[email address]"

三、Git常用命令

1、仓库

1 #在当前目录新建一个Git代码库
2 git init
3
4 #下载一个项目和它的整个代码史
5 git clone [url]

2、增加/删除文件

#添加指定文件到暂存区
git add [file1] [file2] ...

#添加指定目录到暂存区,包括子目录
git add [dir]

#添加当前目录的所有文件到暂存区
git add .
---------------------------------------------
#删除工作区文件,并将这次删除放入暂存区
git rm [file1] [file2] ...

3、代码提交

1 #提交暂存区到仓库区
2 git commit -m "[message]"
3
4 #提交暂存区的指定文件到仓库区
5 git commit [file1] [file2] ... -m "[message]"

4、分支

#列出本地所有分支
git branch

#列出所有远程分支
git branch -r

#列出所有本地分支和远程分支
git branch -a

#新建一个分支,但仍然留在当前分支
git branch [branch-name]

#新建一个分支并切换到该分支
git checkout -b [branch]

#切换到指定分支
git checkout [branch-name]

#合并指定分支到当前分支(在master上操作)
git merge [branch]

#删除分支
git branch -d [branch-name]

#删除远程分支
git push origin --delete [branch-name]
git branch -dr [remote/branch]

5、查看信息

 1 #查看所有文件状态
 2 git status
 3
 4 #查看指定文件状态
 5 git status [filename]
 6
 7 #推送到远程仓库
 8 git push
 9
10 #从远程仓库拉取
11 git pull

6、远程同步

#下载远程仓库的所有变动
git fetch [remote]

#显示所有远程仓库
git remote -v

#添加一个新的仓库,并命名
git remote add [shortname] [远程仓库url]

#取回远程仓库的变化,并与本地分支合并
git pull [remote] [branch]

#上传本地指定分支到远程仓库
git push [remote] [branch]

#强行推送当前分支到远程仓库,即使有冲突
git push [remote] --force

#推送所有分支到远程仓库
git push [remote] --all

四、Git实战

一、暂存区提交与撤销

1、比较工作区和仓库的不同

git常用命令-LMLPHP

1 执行
2 git diff HEAD -- [文件名]
3 比较工作区和仓库的不同

git常用命令-LMLPHP

1 差异比较说明:
2 '---':表示变动前的文件
3 '+++':表示变动后的文件
4 变动的位置用两个@符号作为开始和结束
5 '-0,0':减号表示第一个文件,第一个0表示第0行,第二个0表示连续0行;
6 '+1,2':加号表示第二个文件,第一个1表示第1行,第二个2表示连续2行;

2、暂存区删除文件

git reset HEAD [文件名]

二、版本回退

1、查看日志

git log

git常用命令-LMLPHP

2、回到上一个版本

1 git reset --hard HEAD^

3、回到上两个版本

1 git reset --hard HEAD^^

4、回到指定版本

1 git reset --hard HEAD~3
2 #回到3个版本前

5、查看所有版本信息

git reflog

git常用命令-LMLPHP

6、回到指定版本

1 git reset --hard [唯一id]

git常用命令-LMLPHP

7、查看简洁版本信息

git log --pretty=oneline

git常用命令-LMLPHP

三、版本删除

1、取消删除

工作区删除文件,取消删除(git仓库没有删除)

1 git restore [工作区删除的文件名]

2、从版本库拉回

1 git checkout [工作区删除的文件名]

3、从版本库删除

1 git rm [版本库中要删除的文件名]

四、远程仓库

1、查看本地仓库提交的内容

1 git ls-files

2、添加远程仓库

1 git remote add [远程仓库别名:默认origin] [远程仓库地址url]
2 #eg:git remote add origin https://github.com/...

3、推送到远程仓库

1 git push -u origin master

4、使用SSH地址

  • 生成密钥

    ssh-keygen -t rsa -C "github/gitee账户邮箱"
  • 密钥地址:

    1 /c/Usres/Administrator/.ssh/id_rsa
  • 在github或者gitee设置中找到SSH设置 ---> 新建SSH,添加公钥(不要加密钥)

  • 其他同https

五、本地分支操作

1、查看所有分支

1 git branch

2、新建分支并切换

1 git checkout -b [new_branch-name]

3、删除指定分支

1 git branch -d [branch-name]

4、切换指定分支

git checkout [branch-name]

5、合并分支

合并指定分支到当前分支(当前分支为master,此操作在master分支上进行),禁止合并主分支到其他分支

1 git merge [branch]

6、重命名分支

如果newbranch名字已经存在,则需要使用-M强制重命名,否则,使用-m进行重命名

1 git branch -m|-M [oldbranch] [newbranch]

六、远程分支操作

1、查看远程所有分支

1 git branch -r

2、查看本地和远程所有分支

1 git branch -a

3、创建远程分支&推送本地分支到远程分支

1 git push origin [branch-name]
2 #1、会创建远程分支
3 #2、远程分支与本地分支名字相同

4、删除远程分支(本地分支还保留)

危险操作

注:注意冒号

1 git push origin :[remote_branch]

5、拉取远程分支并在本地创建分支

注:远程分支前加origin

1 git checkout -b [local_branch] origin/[remote_branch]

七、本地分支冲突解决

1、本地分支修改文件

git常用命令-LMLPHP

git常用命令-LMLPHP

2、切换分支

1 git checkout master

3、本地master分支修改文件

git常用命令-LMLPHP

git常用命令-LMLPHP

4、主分支进行合并

1 git merge dev1

git常用命令-LMLPHP

5、冲突解决方法

解决冲突后重新add,commit

6、查看分支合并图

1 git log --graph --pretty=oneline

八、多人冲突解决

1、先拉取

1 git pull

2、解决冲突

3、重新add,commit,push

04-19 01:01