1、应用场景
- 通常情况下,我们一般都是现在git远端仓库创建项目,然后直接git clone 仓库地址直接本地,这时候就会自动关联本地仓库和远端仓库。
- 当有时候我们需要手动的把本地代码提交到远端,关联到远端的仓库。
2、关联git本地和远端仓库步骤
- 打开git,输入mkdir newProject 新建一个文件夹。
- git init 初始化本地文件夹为一个可以管理的git仓库。
- 关联本地仓库和远端仓库:git remote add origin http://${path}.git.
- 把文件放入本地仓库
- git status // 列出没有被git管理或者修改但还没有未被提交的文件
- git add . // 将未被管理的文件添加到git
- git commit -am "提交文件"
- 把本地库推送到远端仓库
- git push -u origin master
- ps:当远端仓库使用Readme文件初始化项目,需要先git pull origin master,有固定格式时需手动编辑,按i修改,:wq退出
- 切换本地开发分支并管理远端分支
- git checkout -b topic // 创建并切换到topic新分支,相当于git branch topic 和git checkout topic 组合
- git push origin topic:topic // 关联本地topic分支和远端topic分支 (没有将自动创建topic分支并关联)
3、git 常用命令
- 开发四部曲。
- git add .
- git commit -a "commit" / git commit -am "commit"
- git pull origin master
- git push origin master
- 代码冲突。
- 解决冲突
- git add .
- git rebase --continue (或者再次git commit)
- git push origin master
- git 分支管理
- git fetch (-p) // branch在服务器上的最新状态
- git branch (-a) // 查看所有branch
- git branch newBranch // 本地创建branch
- git checkout branch // 切换branch
- git checkout -b topic // 创建并切换到topic新分支
- git push origin topic:topic // 关联本地topic分支和远端topic分支
- git branch --set-upstream-to=origin/topic topic //设置本地topic的上游及远端分支(设置之后git pull将默认从远端topic分支可拉取代码,git push将默认推送代码到远端topic分支)
- ......
- git版本管理
- git reset --hard HEAD^ // 回退上一个版本
- git reset --hard HEAD~3 // 回退上三个版本
- git reset --hard 版本号 // 回退指定版本
- git远端版本回退
- git checkout target_branch // 切换到需要回滚的分支
- git pull //更新代码
- git branch target_branch_copy //备份一下这个分支当前的情况
- git reset --hard target_commit_id //把target_branch本地回滚到target_commit_id
- git push origin :target_branch //删除远程 target_branch
- git push origin target_branch //用回滚后的本地分支重新建立远程分支
- git push origin :target_branch_copy //如果前面都成功了,删除这个备份分支
- git 大小写不敏感问题
- 修改配置项
- 项目根目录下,ll -a
- cd .git/ 进入.git/文件下,ll -a
- 修改config配置文件 vim config
- ignorecase = false
- :wq退出保存
- 修改文件名,提交。
- ps:多人协作时不建议使用,大小写不统一时更新会报错。建议提交后再把配置项修改为true。
- 重命名
- git mv oldName newName
- git status
- 可以看到rename的提示,此时正常提交即可。
- 修改配置项
4、 其它
- git的命令远不止于此,本文只是类举出使用git的常用场景及命令。
- 如有疑问和错误欢迎提出和指正。