1、应用场景
通常情况下,我们一般都是现在git远端仓库创建项目,然后直接git clone 仓库地址直接本地,这时候就会自动关联本地仓库和远端仓库。
当有时候我们需要手动的把本地代码提交到远端,关联到远端的仓库。
2、关联git本地和远端仓库步骤
打开git,输入mkdir newProject 新建一个文件夹。
git init 初始化本地文件夹为一个可以管理的git仓库。
关联本地仓库和远端仓库:git remote add origin http://${path}.git.
把文件放入本地仓库
git st(status) // 列出没有被git管理或者修改但还没有未被提交的文件
git diff # → diff文件的修改(⚠️很重要很重要很重要)
git add . // 将未被管理的文件添加到git
git ci(commit) -am "提交文件"
把本地库推送到远端仓库
git push -u origin master
ps:当远端仓库使用Readme文件初始化项目,需要先git pull origin master,有固定格式时需手动编辑,按i修改,:wq退出
切换本地开发分支并管理远端分支
git co(checkout) -b topic // 创建并切换到topic新分支,相当于git branch topic 和git checkout topic 组合
git push origin dev:dev // 发布dev分支,同步dev分支的代码到远程服务器 ,这样远程仓库又多了一个dev分支(没有将自动创建dev分支并关联,个人觉得 这是项目构建时组长或特定一个人去构建的,)
(
多人协作的工作模式通常是这样:
- 首先,可以试图用
git push origin <branch-name>
推送自己的修改; - 如果推送失败,则因为远程分支比你的本地更新,需要先用
git pull
试图合并; - 如果合并有冲突,则解决冲突,并在本地提交;
- 没有冲突或者解决掉冲突后,再用
git push origin <branch-name>
推送就能成功!
如果git pull
提示no tracking information
,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to <branch-name> origin/<branch-name>
。
这就是多人协作的工作模式,一旦熟悉了,就非常简单。
)
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的提示,此时正常提交即可。