git使用--01

文章目录

    • 1. 版本控制工具
    • 2. 初始化配置
    • 3. 公钥设置
    • 4. 连接远程仓库
    • 5.常用命令
        • 强制覆盖本地分支
        • 远程提交
        • 服务器代码合并本地代码
        • 服务器代码覆盖本地代码
    • 6. gitee和gitlab同时配置
    • 7. 其他配置

1. 版本控制工具

集中式:CVS、SVN---版本库是集中存放在中央服务器,依赖网络
分布式:Git     ---不必联网、分支管理

2. 初始化配置

# 制定E盘下Git代码仓库
cd E:
mkdir Git
cd Git

# 配置用户名密码
git config --global user.name 'zyanwei2011'
git config --global user.email '[email protected]'
git config --list     测试

# 初始化
git init

# 查看
git config --list

3. 公钥设置

1. ssh-keygen -t rsa -C "[email protected]" -f "gitee_id_rsa"
2. 一直按回车(Enter),不要输入任何密码之类,生成 ssh key pair,win下位置:C:\Users\zy\.ssh
3. ssh-add C:/Users/zy/.ssh/id_rsa
     如果出现:Could not open a connection to your authentiacation agent,则执行:
   ssh-agent
     再执行:
   ssh-add C:/Users/zy/.ssh/id_rsa成功ssh-add l就有新加的rsa了
4. cat C:/Users/zy/.ssh/id_rsa.pub,将公钥复制出来
5. gitee右上角设置--SSH公钥-添加公钥
6. 测试公钥设置:ssh -T [email protected]
  出现:You've successfully authenticated, but GITEE.COM does not provide shell access 即为成功。

4. 连接远程仓库

# 删除远程仓库(若已有远程仓库,则可删除)
git remote rm origin

# 添加远程仓库
git remote add origin [email protected]:zyanwei2011/python10.git

# 拉取代码
git pull origin master

# 首推
git push -u origin master

# 创建本地分支
git branch jenkins ## jenkins分支

# 切换分支
git checkout jenkins

# 设置分支关联
git branch --set-upstream-to=origin/jenkins jenkins # 将本地jenkins关联到远程jenkins

5.常用命令

+ Add文件
    git add README.md

+ commit文件
    git commit -m "add a readme file"

+ 查看状态
    git status

+ 恢复到暂存
    git reset README.md

+ 文件暂存时可恢复到修改前
    git checkout -- README.md

+ 查看历史(id)
    git log     -- 查看当前分支之前的log
    git flog    -- 查看当前版本之后的log
    git log  --decorate --oneline --graph

+ reset命令
    语法:git reset --mixed HEAD~   (~代表上一个版本,~2或~~上上一个版本并依次类推)
    - 移动HEAD的指向,将其指向上一个快照
    - 将HEAD移动后指向的快照回滚到暂存区域

    语法:git reset --soft HEAD~
    - 移动HEAD的指向,将其指向上一个快照

    语法:git reset --hard HEAD~
    - 移动HEAD的指向,将其指向上一个快照
    - 将HEAD移动后指向的快照回滚到暂存区域
    - 将暂存区域的文件还原到工作目录

    对比总结:
    - 移动HEAD的指向(--soft)
    - 将快照回滚到暂存区域([--mixed],默认)
    - 将暂存区域还原到工作目录(--hard)

+ 回滚快照:
    - 语法:git reset id        -- 回滚版本,只需输入id前5位
    - 语法:git reset id file   -- 回滚个别文件

+ 比较快照
    - 语法:git diff id1 id2    -- 比较任一2个版本
    - 语法:git diff idn        -- 比较当前目录和任一版本
    - 语法:git diff -- cached idn  -- 比较任一版本和暂存区域

+ 更正提交
    - 语法:git commit --amend    进入编辑,编辑方法同vim,i进入编辑,q!保存退出
    - 语法:git commit --amend -m "。。。"   修改提交说明

+ 删除文件
    - 语法:git rm     删除工作区域和暂存区域的文件,即取消跟踪.如果文件已经commit,则需要使用命令:git reset --soft HEAD~
    - 语法:git rm -f    强制删除Stage和Working Directory的文件
    - 语法:git rm --cached      删除Stage中的文件

+ 重命名文件
    - 语法:git mv  

+ 创建分支
    - 语法:git branch 

+ 切换分支
    - 语法:git checkout 
    - 语法:git checkout -d  创建并切换

+ 合并分支
    - 语法:git merge   合并到当前分支

+ 删除分支
    - 语法:git checkout 
    - 语法:git branvh -d 

强制覆盖本地分支

- git fetch --all    //只是下载代码到本地,不进行合并操作
- git reset --hard origin/分支名如master    //把HEAD指向最新下载的版本

远程提交

- git add *
- git commit -m '*'
- git pull
- git push origin master:zhangyi            本地分支/远程分支
- 远程merge必须在page页中操作

服务器代码合并本地代码

- git pull
    error: Your local changes to the following files would be overwritten by merge
    Please commit your changes or stash them before you merge.

解决办法
-  git stash     //暂存当前正在进行的工作。
- git pull   origin master //拉取服务器的代码
- git stash pop //合并暂存的代码

服务器代码覆盖本地代码

- git reset --hard  //回滚到上一个版本
- git pull origin master

6. gitee和gitlab同时配置

在.ssh目录下生成公钥,并将公钥添加到网站中
    ssh-keygen -t rsa -C "[email protected]" -f "gitee_id_rsa"
    ssh-keygen -t rsa -C "[email protected]" -f "gitlab_id_rsa"

配置config(无文件则创建),文件内容如下
-------------------------------------------------
    # gitee
    Host gitee.com
    HostName gitee.com
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/gitee_id_rsa

    # gitlab
    Host gitlab.com
    HostName gitlab.com
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/gitlab_id_rsa
-------------------------------------------------
测试
    ssh -T [email protected]
    ssh -T [email protected]

7. 其他配置

# 忽略Windows/Unix换行符转换问题
git config --global core.autocrlf false

# 避免git gui中的中文乱码
git config --global gui.encoding utf-8

# 避免git status显示的中文名乱码
git config --global core.quotepath off

# windows区分大小写设置
git config --global core.ignorecase false

# 防止出现windows回车换行符问题
git config --global core.autocrlf input

# 颜色设置 
git config --global color.branch auto
git config --global color.diff auto
git config --global color.interactive auto
git config --global color.status auto
git config --global color.ui auto

你可能感兴趣的:(工具及基础)