首先配置自已的git
$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com
常用命令
git commit --amend 撤销最近一次的修改
git fetch [remote-name] 从远程仓库中抓取数据
git push [remote-name] [branch-name] 将数据推送到远程的某个分支
git remote add [shortname] [url] //远程添加一个分支
git remote show [remote-name]
git tag -a v1.4 -m 'my version 1.4' 打标签
git show v1.4 显示v1.4这个标签的xinx
git tag 查看已经打了哪些标签
git reset HEAD -- file
建立新的分支
git branch pan //新建分支pan
git checkout pan //切到pan分支 此时HEAD指向的是pan master指向的是建立分支之前的commit指针
git checkout -b pan //新建并切换到分支pan
git merge pan
git branch -d pan //当某个分支问题解决了以后,就可以删除这个分支了
git merge master //在某个分支上将master中的内容合并过来
git branch --merged//查看已经合并的分支
git branch --no-merged //查看没有合并的分支
git mergetool//调用解决合并冲突的工具
git fetch origin //来同步远程服务器上的数据到本地
git push (远程仓库名) (分支名) //推送本地分支,这个是推送到远程的同名分支
git push origin serverfix:awesomebranc//推送到远程的其他的分支
建立新的分支
git push <远程主机名> <本地分支名>:<远程分支名>
## example
git push origin payne:payne //如果远程分支名不存在,则创建分支
git pull <远程主机名> <远程分支名>:<本地分支名>
## example
git pull origin next:master //取回origin主机的next分支,与本地的master分支合并
删除远程分支develop:
git push origin --delete develop
git branch -a 查看所有的分支,包括本地和远程的
git branch -r 查看远程分支
git fetch origin dev-pan取回远程的某个分支,所取回的更新,在本地主机上要用"远程主机名/分支名"的形式读取。比如origin主机的master,就要用origin/master读取。
git merge origin/dev-pan 在某个分支上把刚才取回的运程分支合并到现在的某个分支
建立裸仓,两种方法
将本地的导出为裸仓
git clone --bare my_project my_project.git //my_project这个仓已经存在了
scp -r my_project.git user@git.example.com:/opt/git //将裸仓移到服务器上
git init --bare --shared //如果对服务器上裸仓没有权限 此命令用于获得权限
git clone root@120.24.72.202:/home/my_project/my_project.git //将裸仓中的内容复制出来
直接建立裸仓(里面无内容)
cd /opt/git
$ mkdir project.git
$ cd project.git
$ git --bare init
$ cd myproject
$ git init
$ git add .
$ git commit -m 'initial commit'
$ git remote add origin git@gitserver:/opt/git/project.git
$ git push origin master
其他人的克隆和推送也一样变得很简单:
$ git clone git@gitserver:/opt/git/project.git
$ vim README
$ git commit -am 'fix for the README file'
$ git push origin master