1. 什么是git

Git是一款开源的分布式版本控制系统

语法

  1. git [--version] [--help] [-C <path>] [-c name=value]
  2. [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
  3. [-p | --paginate | --no-pager] [--no-replace-objects] [--bare]
  4. [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]
  5. <command> [<args>]

选项

add              将文件内容添加到索引
bisect           通过二进制查找引入错误的更改
branch           列出,创建或删除分支
checkout         检查分支或路径到工作树
clone            将存储库克隆到新目录中
commit           将更改记录到存储库
diff             显示提交,提交和工作树等之间的更改
fetch            从另一个存储库下载对象和引用
grep             打印匹配图案的行
init             创建一个空的Git仓库或重新初始化一个现有的
log              显示提交日志
merge            加入两个或更多的开发历史
mv               移动或重命名文件,目录或符号链接
pull             从另一个存储库或本地分支获取并合并
push             更新远程引用以及相关对象
rebase           转发端口本地提交到更新的上游头
reset            将当前HEAD复位到指定状态
rm               从工作树和索引中删除文件
show             显示各种类型的对象
status           显示工作树状态
tag              创建,列出,删除或验证使用GPG签名的标签对象

部署Django项目步骤(一、Git) - 图1
图片来源
部署Django项目步骤(一、Git) - 图2

图片来源

2. 如何使用git

部署Django项目步骤(一、Git) - 图3

  1. 安装git
  2. 使用github
  3. 下载代码 git clone
  4. 查看状态 git status
  5. 添加代码 git add
  6. 忽略文件 ignore
  7. 提交代码 git commit -m “描述”
  8. push 和 pull
  9. git checkout
  10. git log

1. 在github中新建项目 proj_lab与本地项目文件名相同即可

2. 选择clone 复制项目地址

3. 选择需要存放的文件夹目录,右击 git bash打开

先将本地项目文件夹改名,防止同名冲突

cx@DESKTOP-VS3A41J MINGW64 /g/code_workspace/py3_2020/7_Django_2020
$ git clone https://github.com/ck-wobbuffet/proj_lab.git
Cloning into 'proj_lab'...
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), 612 bytes | 2.00 KiB/s, done.

部署Django项目步骤(一、Git) - 图4

4. 将原项目文件夹下项目拷贝到该文件夹下,cd到该文件夹然后查看文件夹状态git status

cx@DESKTOP-VS3A41J MINGW64 /g/code_workspace/py3_2020/7_Django_2020/proj_lab (master)
$ git status
On branch master
Your branch is up to date with 'origin/master'.

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        .idea/
        comment/
        db.sqlite3
        manage.py
        meida/
        proj_lab/
        read_statistics/
        s2aclab/
        static/
        templates/

nothing added to commit but untracked files present (use "git add" to track)

红色字体表示该编辑区文件未上传到寄存区。

5. git add .上传所有文件并查看状态

部署Django项目步骤(一、Git) - 图5

6. 提交文件git commit -m 'name'

新建文件 .gitignore

vim .gitignore

输入不想提交的文件名
db.sqlite3 数据库
settings.py
__pycache__/临时文件夹
media 上传资源文件夹

git reset + 4,5操作重新应用.gitignore的更改

git commit -m '自定义名称'
git commit -m 'version7.1'

7. git push上传

cx@DESKTOP-VS3A41J MINGW64 /g/code_workspace/py3_2020/7_Django_2020/proj_lab (master)
$ git push
Enumerating objects: 262, done.
Counting objects: 100% (262/262), done.
Delta compression using up to 12 threads
Compressing objects: 100% (244/244), done.
Writing objects: 100% (261/261), 11.63 MiB | 470.00 KiB/s, done.
Total 261 (delta 37), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (37/37), done.
To https://github.com/ck-wobbuffet/proj_lab.git
   6033bab..4453901  master -> master

8. git pull 拉取github最近更新的文件到本地

9. git log 查看日志

commit 445390131453f677bdbb147f6a29ebf13325ca2c (HEAD -> master, origin/master,
origin/HEAD)
Author: chgken <chgken@users.noreply.github.com>
Date:   Wed Jul 1 18:18:38 2020 +0800

    version7.1

commit 6033bab53f5100f2b8f87bb78874e25a86db3f9b
Author: ck-wobbuffet <38935574+ck-wobbuffet@users.noreply.github.com>
Date:   Wed Jul 1 15:48:11 2020 +0800

    Initial commit

10. git 覆盖更新到本地

git强制覆盖:
git fetch —all
git reset —hard origin/master
git pull

git强制覆盖本地命令(单条执行):
git fetch —all && git reset —hard origin/master && git pull

root@hecs-x-medium-2-linux-20200704093014:/home/proj_lab# git fetch --all && git reset --hard origin/master && git pull
Fetching origin
HEAD is now at 5035256 Merge branch 'master' of https://github.com/ck-wobbuffet/proj_lab
Already up to date.

也可以直接在vscode中使用git

修改后的本地文件在vscode中会显示,选择暂存已修改的文件。
**部署Django项目步骤(一、Git) - 图6
然后选择提交已暂存,推送(push)。有时候会提示输入账户名和邮箱。
image.png

11. 上传更新到github

更新本地代码后,在项目文件夹中

git status 查看文件状态,红色表示未提交到暂存区
git add * 提交更新文件到暂存区
git status 查看文件状态,绿色已暂存
git commit -m "更新说明"
git pull
git push 
输入账户密码

image.png
image.png