公司里一直在用git做为版本管理工具,而我总感觉用着别扭,难道是svn用多了。在这里简单记录:
git remote add -f songcl git://192.168.215.12/git/dict2.git (项目里添加获取人的设置)
其中,songcl是在本地设置获取人的别名。dict2.git是获取人的项目。
git fetch --all(获取全取人分支的命令)
在设置了获取人后,可以获取全部人的项目。当然也可以单独获取。
git branch -a (查看所有分支)
同时还可以看出当前在哪个分支上。
git rebase origin/master (合并分支)
gitk --all& (查看历史及详细记录)
git reset --hard HEAD(回到上次版本)
另外要说的重点是git中的本地与版本库中的代码冲突时的解决:在Team Synchronizing视图(java的eclipse)中可以看到本地有多少没有提交。这时如果出现最烦人的红色左右箭头,先要把版本库的代码fetch到本地,然后,如果能够用机器自己自动合并的就直接用merge来搞定,不能的,提示出错的,就用手动修改,然后加add index,再然后commit。最后都弄完了,就可以直接push了。这里我可以理解的是,git不允许本地代码直接覆盖版本库,所以要拉到本地合并后再提交。应该是出于代码保护的机制吧。
合并操作有rebase与merger两种,获取别人到自己项目上合并时,最好使用rebase。当自己本地与远程项目冲突解决后,再merger回远程,这样一般不容易出错。
git的最大特色,本人脚着是在本地有一个版本库,相当于工作副本,不怕丢失项目——只要你提交了的话。
新增:
git push --help 推送命令帮助 git push --force 强制推送 git stash ?? git stash pop ?? git checkout -b half-done 207cf40 新建207cf40版本代码的half-done分支 git branch -D half-done 删除half-done分支
===========================================
后续添加:
git clone git://localhost/git/spanish.git //复制获取项目
git daemon --reuseaddr --base-path=/var /var/git &//建立本地git项目。
本地项目建立git的完整使用样例
git songcl$ sudo git clone --bare /Users/songcl/git/workproject spanish.git
cd spanish.git/
sudo touch git-daemon-export-okr //生成
sudo chown -R songcl .. //赋于权限
启动本地git连接服务(让别人能够访问到)
git daemon --reuseaddr --base-path=/var /var/git &