Git的安装、操作。

安装git地址

  • Windows:https://git-scm.com/downloads

Git配置

  • git config --global:全局git配置,这台机器所有的Git仓库均会使用这个配置
git config --global user.name "eastside" # 你的名字
git config --global user.email "..@xx.com" # 你的邮箱

Git操作

创建版本库

版本库又名仓库,英文名repository

你可以简单的理解一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改,删除,Git都能跟踪,以便任何时刻都
可以追踪历史,或者在将来某个时刻还可以将文件还原

  • 选择,进入某个目录
mkdir project
cd project
  • 初始化目录为本地仓库
git init
  • 初始化之后,目录下会多一个隐藏目录.git,该目录是git用来管理版本的

添加项目文件

  • 以创建django项目为例,在git本地仓库开启一个django项目
django-admin startproject testpro
  • 添加项目文件或目录至暂存区
git add testpro
  • 将暂存区内容提交至本地仓库
git commit -m "a django project"
$ git commit -m "a django project"
[master (root-commit) adb00b3] a django project
 5 files changed, 172 insertions(+)
 create mode 100644 testpro/manage.py
 create mode 100644 testpro/testpro/__init__.py
 create mode 100644 testpro/testpro/settings.py
 create mode 100644 testpro/testpro/urls.py
 create mode 100644 testpro/testpro/wsgi.py

-m参数指定提交注释

  • 查看此时仓库状态
git status
lienze@DESKTOP-BIDA1PF MINGW64 ~/Desktop/project (master)
$ git status
On branch master
nothing to commit, working tree clean

文件修改提交

如果在开发过程中,对其中的某个文件进行了修改,那么git在对比文件指纹的过程中发现了差异,此时也需要将新修改的文件进行提交

  • 修改settings.py文件配置
ALLOWED_HOSTS = ["*",]
# ALLOWED_HOSTS = []
  • 查看仓库状态
git status
$ git status
On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        modified:   settings.py

no changes added to commit (use "git add" and/or "git commit -a")

此时仓库说,modified: settings.py,我们对其中某个文件进行了修改

  • 将修改之后的文件加入暂存区
git add -A
  • 此时查看状态
git status
$ git status
On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

        modified:   settings.py
  • 将暂存区的内容提交至本地仓库
git commit -m 'change settings'
On branch master
nothing to commit, working tree clean
  • 丢弃修改,可以丢弃工作区对于文件的修改
git checkout -- settings.py
  • 注意:命令git checkout – settings.py中的–很重要,如果没有–的话,那么命令变成创建分支了

文件删除提交

  • 在django项目的隔壁创建一个1.py文件
touch 1.py
  • 添加该文件
git add -A
git commit -m "add 1.py"
  • 删除该文件
rm 1.py
  • 恢复删除文件
git checkout -- 1.py
  • 提交至本地工作区
git commit -a -m "rm 1.py"

git commit -a:提交全部修改

django-admin startproject demo2
cd demo2                          # 切换到项目路径
git init                          # 初始化这个本地git仓库
# git remote rm origin            # 如有路径不一致可以先删除现有的路径       
git remote add origin http://192.168.56.12/devopsedu/demo2.git    #设置代码提交url路径
touch Readme                      # 新建一个项目文件(工作区)
git add .                         # 把工作区中所有变更全部提交到(暂存区)
git commit -m 'init'              # 把暂存区代码提交到本地git仓库,只有提交到代码库才能被git管理(本地git仓库)
git push origin master            # 将本地仓库的代码推送到线上仓库(线上git仓库)
  • 回滚
git log                        #查看所有提交到仓库的版本记录:   git log -2
git reflog                     #查看所有操作记录(状态的md5值和改变的值)
git reset --hard d9e0ed0       #回到指定版本(d9e0ed0是创建版本的MD5值得前6位或者7位)
git reset --hard HEAD^         #回到上一个版本
注:这样可以回到第一次提交到仓库的状态,但再使用git log看不到其他几次的md5值了

git远程仓库

在团队开发中,我们需要每个开发者彼此配合,对同一款项目代码进行编写,此时需要我们借助线上仓库

  • github:https://github.com
  • gitee:https://gitee.com

由于网络环境,此处选择gitee

  • 将远程仓库添加到本地
git remote add edu git@gitee.com:eastside/edu.git
  • 添加一个远程库,库名为edu,地址git@gitee.com:eastside/edu.git

列举当前所有的远程库

git remote
  • 删除某个远程库
git remote remove edu
  • 将本地的仓库推到名为edu的远程仓库中
# 仓库地址:https://gitee.com/eastside/edu.git
git push edu master
  • 将远程仓库的代码拉取到本地,在第一次拉取时,可能因为缺少远程服务器上的README.txt文件,而导致远程和本地的分支不一样,通过以下命令
git pull --rebase origin master # 新建 README文件
git pull edu master --allow-unrelated-histories
  • 将远程仓库克隆到本地
git clone https://gitee.com/eastside/edu.git

这是一个已经和远程仓库master分支关联的本地仓库

  • git全局配置多个用户名冲突时
$  git config --global --replace-all user.email "输入你的邮箱" 
$  git config --global --replace-all user.name "输入你的用户名"

GIT分支

每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支

截止到目前,只有一条时间线,在Git里,这个分支叫主分支,即master分支

我们可以通过checkout命令进行分支的创建及切换

  • git checkout -b:创建并切换分支
    • git branch branchname:创建分支
    • git checkout branchname:切换分支
  • 创建一个测试分支
git checkout -b testbranch
  • 删除一个分支
git branch -d testbranch
  • 提交分支代码
git push --all
  • 合并分支
git merge testbranch
'''1. 从master分支切换到dev分支进行开发'''
git checkout -b dev master    # 从master分支创建dev开发分支
git branch                    # 可以看到现在已经切换到dev分支了
vim Readme                    # 模拟在项目中修改代码
git add .                     # 把工作区中所有变更全部提交到(暂存区)
git commit -m 'in dev'        # 把暂存区代码提交到本地git仓库(本地git仓库)
git push origin dev           # 把代码先推倒dev分支,让测试人员测试

'''2. 当测试人员测试完成后将dev分支代码合并到master形成文档版本'''
git checkout master           # 开发完成后,需要合并回master分支,先切换到master分支
cat Readme                    # 可以看到master分支的内容没有修改
git merge --no-ff dev         # 将刚刚dev中修改的代码合并到master
git push origin master        # 将本地仓库的代码推送到线上仓库(线上git仓库)

GIT冲突

常见git冲突造成,是由于在多个分支下,或多个仓库中,对同一个文件修改,或添加了新的文件之后

由于某一方对于文件的修改没有及时在另一方生效,当另一方或另一分支在进行提交时,即会出现冲突

  • 在testbranch分支下,修改1.py文件,并提交到云仓库
  • 在master分支下,也修改1.py文件,并尝试提交
    在这里插入图片描述
  • 此时冲突出现,使用git status命令查看当前仓库状态
    在这里插入图片描述
  • 查看被修改的文件1.py
    在这里插入图片描述
  • Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容,其 中<<<HEAD是指主分支修改的内容,>>>>> testbranch是指fenzhi1上修改的内容,我们可以将差异部分的标注删掉重新提交,或是与对方协商,另行拷贝文件内容,重新clone仓库,将拷贝过的内容添加至内
  • 之后再进行提交
git add 1.py
git commit -m "conflict fixed"
  • 就搞定了

转至:https://lienze.tech/git/b8f4bd70.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值