导入已有工程到Github


  1. 先在github上创建一个repository,为避免其他错误,不生成README等文件。
  2. 配置远程repository的用户名和注册邮箱
git config --global user.name '<your_github_nick_name>'
git config --global user.email <your_github_sign_in_email_address>
  1. 切换到项目目录下,比如项目名是test,所以切换到test的根目录下。
  2. 初始化本地目录作为一个Git repository
$ git init
  1. 新建.gitignore文件设置git提交过滤选项,配置语法:
  * 以斜杠“/”开头表示目录;
  * 以星号“*”通配多个字符;
  * 以问号“?”通配单个字符
  * 以方括号“[]”包含单个字符的匹配列表;
  * 以叹号“!”表示不忽略(跟踪)匹配到的文件或目录;

此外,git 对于 .ignore 配置文件是按行从上到下进行规则匹配的,意味着如果前面的规则匹配的范围更大,则后面的规则将不会生效;举例说明:

# ignore special folder
.git/*
.vscode/*
venv/*
# ignore all folder
*.pytest_cache/
# ignore special file
*.bak
  1. 添加工程修改文件到本地库索引,其中'.'表示全部文件,但最好一个个提交以便精确注释说明
$ git add .
  1. 提交工程修改文件到本地库
$ git commit -m "first commit"

说明:也可以用git commit --amend "<修改的提交说明>"

  1. 添加远程项目 (1)找到github上你的项目的url(即:clone url),例如:
https://github.com/thuanghai/test.git

(2)提交到远程仓库,'your_nickname'比如为origin

git remote add <your_nickname> https://github.com/thuanghai/test.git

注:把本地的repository push到github。其间需要输入github的账号和密码。

创建分支开发新特性


当需要在当前主板本中开发新的功能的时候,通常需要新建一个分支进行开发,然后合并到主线。

  1. 从github仓库中拉取主版本
git fetch origin master:localdev

说明: (1) origin 默认情况下指:远端/服务器端/远程主机,git要求每个远程主机都必须指定一个主机名,git remote 命令就是用于管理主机名。 (2) master 默认的远程分支名,此处作为远程的主版本。 (3) dev 创建的本地分支名。 2. 当每次的迭×××发(微小的改动)完成后去要提交到远程版本库,在向本地库提交完成后,即git add和git commit (-m/--amend)的过程,运行以下命令即可以上创建并提交到远程分支dev。

git push origin dev
  1. 当开发结束后需要与主版本合并 (1) 拉取主版本到本地
git fetch origin master:localmaster

localmaster:为拉取的远程主板本在本地的分支名字 (2) 切换到本地分支localmaster

git checkout localmaster

注:可以通过命令git branch -a 查看所有分支(本地+远程) (3) 将本地分支localdev合并到localmaster

git merge

注: 很有可能需要解决冲突,根据提示进行相应的操作,可以用mergetool图形工具。 (4) 完成合并后将localmaster推送到远程

git push origin master

注: 在上述过程中可以使用git diff <版本1> <版本2> [文件全路径名]查看具体不同之处。 以上为将本地分支合并到远程分支(含主版本分支的过程)

里程碑


完成版本的稳定后需要对全体文件进行快照,以便之后取出。 在此,设定一个条件,lcoaldev和dev作为迭×××发,localmaster和master为带历程碑的稳定版本。

  1. 创建里程碑()
git checkout localmaster
git tag -m "My Version 1.0.0" v1.0.0

v1.0.0为创建的历程碑 3. 在将代码推送到orgin/master后推送里程碑

git push origin v1.0.0

删除历程碑的操作为

git push origin :v1.0.0