Git 删除远程服务器文件同时保留本地文件


在上传工程到 git 上时,有时候会把本地的一些配置文件传到服务器上,这时你先删除本地,再同步服务器,显然是不合理的。
git 提供了一个好的解决方法,可以直接删除服务器文件,同时不影响本地文件,命令如下:

git rm --cached filename/-r directory
git commit "xxxx"
git push

1.删除服务器文件,本地保留。

git rm --cached useless.log
git commit -m "remove file from remote repository"
git push

此时 github 上已经不存在了

2.删除远程 useless 文件夹,本地保留,一定要注意,删除文件夹要使用 -r 参数。

git rm --cached -r useless
git commit -m "remove directory from remote repository"
git push
阅读全文

Git 删除分支 重命名分支


查看已有的本地及远程分支:

git branch -a

删除远程分支:

git push origin --delete Su-modify

删除后,可再次查看分支情况:

git branch -a

删除本地分支:

git branch -d Su-modify

若分支有修改还未合并,会提示你还没合并。
强行删除本地分支:

git branch -D Su-modify

重命名本地分支。

git branch -m devel develop

推送本地分支。

git push origin develop
阅读全文

github fork 同步源的更新


首先要先确定一下是否建立了主 repo 的远程源:

git remote -v

如果里面只能看到你自己的两个源(fetch 和 push),那就需要添加主 repo 的源:

git remote add upstream URL
git remote -v

然后你就能看到 upstream 了。

如果想与主 repo 合并:

git fetch upstream
git merge upstream/master
阅读全文

Git 分支管理模型


单主干
单主干的分支实践(Trunk-based development TBD)在 SVN 中比较流行。Google 和 Facebook 都使用这种方式。trunk 是 SVN 中主干分支的名称,对应到 Git 中则是 master 分支。TBD 的特点是所有团队成员都在单个主干分支上进行开发。当需要发布时,先考虑使用标签tag,即 tag 某个 commit 来作为发布的版本。如果仅靠 tag 不能满足要求,则从主干分支创建发布分支。bug 修复在主干分支中进行,再 cherry-pick 到发布分支。
git-branch-01.png



阅读全文

Git 撤销修改


在 Git 里共有5种状态:
未修改(Origin)
已修改(Modified)
已暂存(Staged)
已提交(Committed)
已推送(Pushed)

已修改,未暂存

如果我们只是在编辑器里修改了文件,但还没有执行 git add .,这时候我们的文件还在工作区,并没有进入暂存区,我们可以用:

git checkout .

或者

git reset --hard

来进行撤销操作。






阅读全文

Git 放弃本地修改 直接 pull 代码


git reset --hard HEAD    
git clean -f -d    
git pull

先 reset 然后清空
同时可以解决如下问题:

error: Your local changes to the following files would be overwritten by merge:
        test/main.go
Please, commit your changes or stash them before you can merge.
阅读全文

Git 提交空目录


目录是空的:
这种情况下只需要在目录下创建 .gitkeep 文件,然后在项目的 .gitignore 中设置不忽略 .gitkeep
.gitkeep 是一个约定俗成的文件名并不会带有特殊规则

目录中已经存在文件:
那就需要首先在根目录中设置 !.gitignore,然后在目标目录也创建一个 .gitignore 文件,并在文件中设置

*
!.gitignore

这样就可以在项目中提交空目录了

阅读全文