git

#########################################

新建项目:(windows)

    背景知识:
        基础设置:
            git config --global core.autocrlf false  #避免Windows的换行符问题
            git config --global user.name "John Doe"
            git config --global user.email johndoe@example.com
            git config --global merge.tool vimdiff    
            git config --global mergetool.prompt false
            git config --list
            git config user.name
            git help config
        
        使用vimdiff解决冲突:
            https://blog.rex-tsou.com/2018/11/%E7%94%A8-vimdiff-%E8%A7%A3-git-%E8%A1%9D%E7%AA%81/
            https://blog.csdn.net/redguardtoo/article/details/9076961
            https://www.cnblogs.com/michael-xiang/p/10465857.html
            git config --global merge.tool vimdiff            #设置解决冲突的工具
            git config --global mergetool.prompt false        #避免每次运行git difftool都有提示信息
            git config --global mergetool.keepBackup false  #默认会生成以 *.orig 为扩展名的备份文件
                git mergtool
                :buffers    #获取窗口编号
                :diffget 3  #使用指定的窗口中得到内容代替merged中的内容
                :diffupdate #刷新一下
                :xa         # 保存退出,git只关心merged中的内容,其余的会自动忽略
                commit
                
        生成 SSH Key: 
            mkdir ~/.ssh
            ssh-keygen -t rsa -C "xxx@163.com"
            clip < ~/.ssh/id_rsa.pub  # 内容复制到剪切板中
            公钥复制到GitHub上即可
            ssh -T git@github.com   #测试sshkey连接
            
            
        .gitignore
            GitHub创建仓库时可以生成,也可以本地创建
        
        和团队项目保持同步:
            git remote add upstream git@github.com:xxx/xxx.git
            git fetch upstream
            git merge upstream/dev
        
        
    根据现有项目,改成灵活配置的方式
    创建新项目
        1.远程仓库
            创建新仓库
                .gitignore,README,不需要证书许可
                创建dev分支
        2.本地仓库
            git clone git@github.com:xxx/xxx.git
            git checkout -b dev origin/dev
2019.8.2

#########################################

.gitignore


删除本地版本库及本地文件
git rm -r -f .idea

本地及远程版本回退
git reset --hard 279bded4
git push -f origin master

设置upstream
git remote add upstream https://github.com/zhongyinhei/yct_worker.git
git fetch upstream
git merge upstream/dev

删除本地分支
git branch -D xjinjin-master

#########################################

接受项目邀请合作开发,在分支工作
https://www.cnblogs.com/schaepher/p/4933873.html

github怎么邀请合作者加入到自己的项目-百度经验:
https://jingyan.baidu.com/article/948f5924f43f47d80ff5f9f9.html

git使用总结:
https://segmentfault.com/a/1190000015798490

冲突解决:

介绍:项目有两个分支master和dev开发分支,dev开发完新功能后remote和upstream都更新完成,现在需要把新功能merge到master上做docker镜像部署到生产环境。

如下:merge时发生conflict,需要手动解决

git mergetool  回车后进入编辑环境注意观察分为 修改前,修改后,remote   保留一个版本即可

git commit -m "conflict"

git push    在GitHub上提交到upstream上即可

完成

#########################################

提前准备好的东西

https://gitee.com/或者github

码云 注册好创建一个测试仓库

git安装

Windows下安装: 自行百度

Linux安装

Yum install git

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

先做远程仓库,在做项目

分布式和集中式   git&svn

Win10下举例

安装好后 打开git bash

全局配置

Git config --global user.name “徐金金”

Git config --global user.email “xxxx@163.com

本地代码管理

Cd /f

Mkdir gitproject

Cd gitproject

Git init   #初始化git仓库

增:

Vim a.py  

Git status      查看状态

Git add a.py    单个文件

git add . (提交所有)  暂存区 

git add --all

Git commit a.py  -m “注释:新加一个文件”     单个文件 本地仓库

git commit -m "test"

Git commit                                 提交多个文件

远程仓库:

码云,git

创建远程仓库

本地仓库关联远程仓库  origin是远程仓库的别名

Git remote add origin https://gitee.com/jinjinxu/test.git

Push到远程仓库 ps:需要验证账号密码,就是登陆码云的账号密码

Git push origin master

git push

#查看远程

Git remote  

Git remote -v

删除远程仓库

git remote remove 远程地址

Git remote remove origin

添加远程仓库

Git remote add 别名 远程仓库地址

Git remote add origin https://gitee.com/jinjinxu/test.git

修改远程仓库

Git remote rename 旧名称 新名称

Git remote rename origin neworigin

从远程仓库删除

Git rm c.py  删除

Git commit   或者 git commit c.py -m “注释”   本地仓库

Git push origin master  远程仓库

查看日志

Git log  #查看整个项目的日志

Git log file #查看单个文件的日志

Git log .  #查看本目录日志

Git reflog #查看简略版

版本切换

Git reset --hard “head^^^”  #几个^符号代表回退几个版本  不建议用

Git reset --hard 2580d

分支管理 一般在分支上工作

Git branch 查看分支

Git branch dev  创建分支

Git checkout dev 切换分支

Git merge dev  合并分支

Git push orgin dev   提交到远程分支

Git merge dev  合并到master  在主分支上才能执行此命令

多人协同

把小明拉入项目

项目--管理--项目组成员管理--开发者--添加项目组成员--输入小明

新人加入流程 到一个干净的目录里执行:

不需要git init

Git clone https://gitee.com/jinjinxu/test.git

Git branch dev   到相应的分支工作即可

冲突问题

Git pull origin dev  更新最新    push之前先pull一下

真冲突的话 手动解决 删除一个留一个

公钥登录  免密登录  个人公钥 项目公钥

Sshkey 生成 公钥和私钥  公钥放在git上即可   

Ssh-keygen -t rsa -C xxxx@163.com  

原文地址:https://www.cnblogs.com/xujinjin18/p/9655968.html