使用Git 作为项目管理工具开发时的方式和注意事项

1.所有新项目都要先创建 .gitignore文件 用于控制垃圾文件的提交 在有新的插件加入生成文件时记得随时更新 下面是一份相对较全的gitignore文件

# OS generated files #
######################
.DS_Store?
ehthumbs.db
Thumbs.db

# Config files #
################
/config/database.yml
/config/email.yml

# Logs and databases #
######################
*.log
*.sql
*.sqlite
*.sqlite3
*.db
schema.rb

# Packages #
############
*.7z
*.dmg
*.gz
*.iso
*.jar
*.rar
*.tar
*.zip


# Compiled source #
###################
*.rbc
*.com
*.class
*.dll
*.exe
*.o
*.so

# Generated public files #
/public/dispatch.*

# Temp files #
*~
/tmp/*
/tmp/cache/*
/tmp/sessions/*
/tmp/sockets/*
/tmp/test/*
.sass-cache
*.tmproj
/coverage
/rerun.txt

# Gem files #
/vendor/rails
*.gem

# Subversion files #
.svn






2.项目新加功能或是修复bug等开发操作 都独立新建一个branch 本地保存与提交到git服务器的都应是这个branch(默认提交的是主分支 记得加参数指定分支) 原则上只有主库管理员才修改master分支。

3.Amend功能。 假设多次提交实际只是修改了同一个功能或是漏提交某些文件 可以用这个功能将提交合并 使得历史记录更清晰。

4.Commit. Commit只是将修改提交至本地的库中,向服务端的库提交需要使用push
   git push (remote) (branch)



demo from pro git

    $ git push origin serverfix

This is a bit of a shortcut. Git automatically expands the serverfix branchname out to refs/heads/serverfix:refs/heads/serverfix, which means, “Take my serverfix local branch and push it to update the remote’s serverfix branch.” We’ll go over the refs/heads/ part in detail in Chapter 9, but you can generally leave it off. You can also do git push origin serverfix:serverfix, which does the same thing — it says, “Take my serverfix and make it the remote’s serverfix.” You can use this format to push a local branch into a remote branch that is named differently. If you didn’t want it to be called serverfix on the remote, you could instead run git push origin serverfix:awesomebranch to push your local serverfix branch to the awesomebranch branch on the remote project.


git中 pull 和 fetch的区别

git fetch:相当于是从远程获取最新版本到本地,不会自动merge


git pull:相当于是从远程获取最新版本并merge到本地



关于移除分支

git branch -d/D branch_name_which_want_to_remove 

引用

-d
Delete a branch. The branch must be fully merged in HEAD.

-D
Delete a branch irrespective of its merged status.


推送指定分支

git push origin 7ca86f4a61ffe27037dde873c24c493767db9a18:staging

git push origin branch_SHA:branch_name

Remove remote branch

git push origin :remote_branch_name

合并指定分支
git cherry-pick branch-SHA1

你可能感兴趣的:(SVN,项目管理,git,Ruby,Rails)