代码改变世界

git 操作

2014-10-09 17:18  JackieHan  阅读(235)  评论(0编辑  收藏  举报

基本操作

  • 初始化

git init   当前目录就可以使用git 管理,创建一个新的目录.git

  • 暂存区操作

git add file  添加文件到git管理  (Untracked files)

                  把已在git管理的已修改的文件提交暂存区 (Changes not staged for commit)

                  合并时把有冲突的文件标记为已解决的状态

git diff    查看当前工作区和暂存区的差异

git diff --staged   查看暂存区和上次提交的差异

git commit -m 'commit discription'  提交已暂存的文件

git commit -am 'commit discription' 跳过暂存区提交文件

git commit  --amend  使用当前暂存区提交,修改最后一次提交

git reset HEAD <file>  取消已暂存的文件

git checkout -- <file>  取消对文件的修改

git rm file  从暂存区删除该文件

git mv file_from file_to  从命名文件

git status   查看当前文件状态

  • 远程仓库

git clone url  localDirctory   克隆远程项目到本地目录

git remote  查看远程仓库

git fetch [remote-name]   从远程仓库抓取数据

git push [remote-name]  [branche-name]   推送数据到远程仓库

git remote show [remote-name]  查看远程仓库信息

git remote add origin giturl    推送本地存在的git仓库到服务器

  • 日志

git log   查看所有日志

             -p 显示每次提交的内容差异

             -n(数字) 现实最近n次的日志

标签管理

git tag   列出所有标签

git tag -l 'v1.*'  列出所有已v1.开头的标签

git tag -a tagname -m 'tag discription'  添加一个含附注的标签

git tag -s tagname -m 'tag discription'  用GPG签署标签

git tag tagname 添加一个轻量级的标签

git tag -d tagname 删除一个标签

git push origin tagname  推送tag到服务器上

git push origin --tags  推送所有tag到服务器上

git tag -d tagname   ==> git push origin :refs/tags/tagname   删除服务器上的分支(先删除本地分支,然后推送变化到服务器)

git clone --branche tagename url   从服务器克隆给定tag的代码

管理分支

  • 查看分支

git branch  当前分支列表,有“*”号的那个分支,为当前工作分支

git branch -v  分支列表,加上最后一个提交信息

git branch -r  查看所有远程分支

git branch -a  查看所有分支

git branch --merge  可以查看有哪些分支已经并入到当前分支了

git branch --no-merge  可以查看哪些分支还没并入 当前分支

  • 添加本地分支:

git branch branchname   创建一个本地 分支

git checkout -b branchname     创建一个本地分支并设置该分支为当前工作分支

  • 切换本地分支:

git checkout branchname   把当前工作分支切换到指定分支

  • 合并本地分支:

假如你建立了一个hotfix分支,工作完成后需要把合并到master分支

git checkout master    切换到master分支

git merge hotfix    把hotfix分支的修改内容合并到master分支

  • 解决分支合并中的冲突:

git 合并操作提示CONFLICT,表示出现合并冲突,使用git status 查看,both modified   fileName  表示该文件有冲突,打开该文件,可以看到:

<<<<<<<<HEAD

some content

=========

some other content

>>>>>>>>>>>> branch name

手工合并后保存,git status 查看后该文件状态为modified,之后提交合并结果完成冲突处理

  • 删除分支

git branch -d branchname     删除本地分支

  • 推送本地分支

git push origin localbranch   推送本地分支到服务上

  • 比较本地分支和远程分支

git diff local_branch  origin/remote_branch  比较本地分支和服务器分支差异    可判断本地分支是否需要提交到服务器

git 高级应用

  • 10个很有用的高级git命令

http://www.oschina.net/translate/10-useful-advanced-git-commands

  • a few git tip you didn't know about

http://mislav.uniqpath.com/2010/07/git-tips/

  • git update commit history author info

http://blog.chinaunix.net/uid-25871104-id-3575141.html 

get web

  • 404 - projects not found

配置的路径,无权限,直接设置777就好