导入已有工程到Github
- 先在github上创建一个repository,为避免其他错误,不生成README等文件。
- 配置远程repository的用户名和注册邮箱
git config --global user.name '<your_github_nick_name>'
git config --global user.email <your_github_sign_in_email_address>
- 切换到项目目录下,比如项目名是test,所以切换到test的根目录下。
- 初始化本地目录作为一个Git repository
$ git init
- 新建.gitignore文件设置git提交过滤选项,配置语法:
* 以斜杠“/”开头表示目录;
* 以星号“*”通配多个字符;
* 以问号“?”通配单个字符
* 以方括号“[]”包含单个字符的匹配列表;
* 以叹号“!”表示不忽略(跟踪)匹配到的文件或目录;
此外,git 对于 .ignore 配置文件是按行从上到下进行规则匹配的,意味着如果前面的规则匹配的范围更大,则后面的规则将不会生效;举例说明:
# ignore special folder
.git/*
.vscode/*
venv/*
# ignore all folder
*.pytest_cache/
# ignore special file
*.bak
- 添加工程修改文件到本地库索引,其中'.'表示全部文件,但最好一个个提交以便精确注释说明
$ git add .
- 提交工程修改文件到本地库
$ git commit -m "first commit"
说明:也可以用git commit --amend "<修改的提交说明>"
- 添加远程项目 (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的账号和密码。
创建分支开发新特性
当需要在当前主板本中开发新的功能的时候,通常需要新建一个分支进行开发,然后合并到主线。
- 从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) 拉取主版本到本地
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为带历程碑的稳定版本。
- 创建里程碑()
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