Git学习

 
git init #初始化,产生./git文件夹

git status # 查看当前文件状态信息

git status list  # 查看stash 暂存排列状态 ,最新的stash暂存状态会排列在{0}的位置

 

git add .         # 将所有文件暂存到版本库
git add 文件名 #将指定文件暂存到版本库

git commit -m '描述信息' #将暂存状态的文件提交到版本库的分支

git log #查看提交记录

git reset --hard   #直接回复版本命令

出现bug后,命令的执行顺序

git stash # 将修改内容暂存到某个区域,回复文件原内容

  

#修复bug后
git add .                         #将文件内容进行暂存
git commit -m '描述信息' #将文件内容提交保存
git stash pop                 #将之前编写内容从暂存区域挪回,可能会出现CONFILICT(content)冲突
#出现冲突后需要手动进行修改编辑
#在修改编辑完成之后需要重新提交保存
git add. 
git commit -m '描述信息'

  

#CONFLICT(content)冲突

  

 创建分支并行开发和修复BUG

commit master 分支内容
git branch dev  #创建dev开发分支,dev拥有和master分支相同的内容
git checkout dev #进入dev分支
Dev 分支:
开发未完成时master出现bug
git add .
git commit -m '开发未完成版本'
Master分支:
git checkout master
git branch bug 
git checkout bug #创建bug分支,并进入bug分支
Bug分支:
修复完成bug后
git add .
git commit -m '修复完成bug' 
切换到master分支与其合并
git checkout master
Master分支:
git merge bug #修复完成后的master内容
Dev分支:
git checkout dev  #切换到dev分支继续进行开发
git add .
git commit -m '开发完成' #开发完成进行提交
Master分支:
git checkout master #切换到master分支,与dev合并,增加开发后的内容
git merge dev 

  远程repository

公司:
    创建远程仓库
    编写代码
    git add .
    git commit ...
    git remote add orgin 仓库地址 
    git push origin master
家:
    git clone 远程仓库地址  #将在公司编写的代码下载到家中电脑
    git add .
    git commit ...
    git remote add github 仓库地址
    git push github master 
公司:
    git pull origin master
    git add .
    git commit ...
    git push origin master #如果这步忘记做了
家:
    根据记忆继续编写代码
    git add .
    git commit...
    git push github master
公司:
    git pull github master #这时可能会出现冲突,需要手动解决冲突
    #继续编写代码
    git add .
    git commit ...
    git push origin master
        

  git pull origin master 可以写为:

    git fetch origin master

    git merge origin/master    <=>    git rebase origin/master 为了区分,git会在分支master前加上链接别名

 

合作开发

collaborator:

Orginazation

创建程序:

  用户A创建程序,提交到GitHub

  用户B克隆项目

  用户C克隆项目

开发功能:

  用户A开发功能1

  用户B开发功能2

  用户C开发功能3

提交

  用户A提交功能1,并push

  用户B提交功能2,无法Push,因为已经有用户A提交过了代码,需要将Github上获取最新代码与本地代码进行合并再进行提交

  用户C与用户B情况一样

合并的方式有两种,前者版本记录会出现合并,后者可以保证版本记录干净整洁:

  git pull origin master 然后 git push origin master

用户A:
    file
    git add .
    git commit -m '功能4'
    git push origin master
用户B:
    file
    git add .
    git commit -m '功能5'
    git push origin master # 报错,因为GitHub中已经有人提交新代码
    git pull origin master
    git push origin master

  git fetch origin master 然后 git merge origin/master 再 git push orgin master

用户A:
    file
    git add .
    git commit -m '功能4'
    git push origin master
 
用户B:
    file
    git add .
    git commit -m '功能5'
    git push origin master # 报错,因为GitHub中已经有人提交新代码
    git fetch origin master
    git rebase origin/master
    git push origin master   

 贡献代码

找到想要编写的项目,fork一下,之后这个项目就会在自己仓库出现

从自己仓库获取代码并进行编辑

创建一个pull request,等待作者是否同意,作者同意之后源代码就会出现贡献者提交的功能

 配置文件

系统配置:/private/etc/gitconfig

用户配置:~/.gitconfig  全局配置文件

项目配置:.git/config

用户凭证

使用SSH减少频繁输入用户密码的情况

ssh-keygen -t rsa命令来创建密钥,将id_rsa.pub公钥的内容拷贝到Github下设置中的SSH KEY中

如果出现Key already in use的情况:

  删掉原来的SSH密钥   cd ~/.ssh

            rm id_rsa id_rsa.pub

  重新生成密钥    ssh-keygen.exe

         cat id_rsa.pub

 忽略文件

在.git/文件夹下创建.gitignore文件,在其中编写的文件名就是git忽略的文件类型

test/[abc].py				
[abc]					
test/*
!test/a.py					
.idea/*
*.pyc
*.excel

  

原文地址:https://www.cnblogs.com/c491873412/p/7544034.html