这里记录一下自己使用git的过程以及遇到的一些问题。
Gitee 创建远程仓库
1、在个人主页,点击加号,新建仓库。
2、关于建立仓库时,一些信息说明:
-
选择语言:仓库主要开发用的编程语言。 -
添加.gitignore:系统默认提供的git忽略提交的文件模板,设置.gitignore后将默认忽略指定目录/文件到仓库。 -
添加开源许可证:如果仓库为公开仓库,可以添加设置仓库的开源协议,作为对当前项目仓库和衍生项目仓库许可约束,开源许可证决定了该开源项目是否对商业友好。 -
Readme:项目仓库自述文档,通常包含有软件的描述或使用的注意事项。
3、点击创建,仓库就创建好了。
本地仓库关联到远程仓库
1、新建文件夹test,右键Git Bash Here 。 Git 的很多命令都需要在 Git 的仓库中运行,所以使用 git init 命令来初始化一个本地仓库。 在执行完成 git init 命令后,test文件中会生成一个 .git 目录,所有 Git 需要的数据和资源都存放在这个目录中。
2、在本地输入 git remote add origin HTTPS/SSH 把本地仓库和远程仓库建立链接。需要提前复制一下远程仓库的HTTPS或者SSH链接。如果使用HTTPS每次都想需要输入账号密码,最好添加SSH公钥,以后会方便很多,添加方法这里就不赘述啦。
git remote -v 查看远程库信息。 ?
最后使用 git clone+ssh 命令就可以克隆远程仓库到本地。
?上传文件
在test文件夹中创建要上传到本地的文件。
git add [file1] [file2] ...
git commit -m “first add”
git pull origin master
git push -u origin master
其实是这样的一个过程
可能出现的错误:
当你执行git pull origin master 时可能会遇到这样的错误:fatal: refusing to merge unrelated histories(拒绝合并不相关的历史) 查了一下资料: 问题的原因:本地仓库和远程仓库实际上是独立的两个仓库。如果采用clone的方式在本地建立起与远程仓库的链接,就不会出现这个问题。 方法一
git push --force origin master
方法二
git pull origin master –allow-unrelated-histories
当执行git pull origin master –allow-unrelated-histories 命令时,可能会出现 错误couldn’t find remote ref –allow-unrelated-histories 终端输入:
git pull --rebase origin master
git push origin master
这样就能解决问题推送成功了。到gitee刷新一下。
常用命令
远程仓库相关 检出仓库: $ git clone 查看远程仓库: $ git remote -v 添加远程仓库: $ git remote add [name] [url] 删除远程仓库: $ git remote rm [name] 拉取远程仓库: $ git pull [remoteName] [localBranchName] 推送远程仓库: $ git push [remoteName] [localBranchName]
关于分支管理: 查看本地分支: $ git branch 查看远程分支: $ git branch -r 创建本地分支: $ git branch [name] ----注意新分支创建后不会自动切换为当前分支 切换分支: $ git checkout [name] 创建新分支并立即切换到新分支: $ git checkout -b [name] 删除分支: $ git branch -d [name] ---- -d 选项只能删除已经参与了合并的分支,对于未有合并的分支是无法删除的。如果想强制删除一个分支,可以使用-D 选项 合并分支: $ git merge [name] ----将名称为[name]的分支与当前分支合并
版本(tag)操作相关命令 查看版本: $ git tag 创建版本: $ git tag [name] 删除版本: $ git tag -d [name] 查看远程版本: $ git tag -r 创建远程版本(本地版本push到远程): $ git push origin [name] 合并远程仓库的tag到本地: $ git pull origin --tags 上传本地tag到远程仓库: $ git push origin --tags 创建带注释的tag: $ git tag -a [name] -m 'yourMessage'
|