Git的常用操作
原文可参见我另一个博客:http://caok.github.com/blog/2012/07/26/the-instructions-of-git/
?
apt-get instal git-coreapt-get instal gitk(一个较好的git图形工具)git配置用户信息
git config --global user.name "John Doe"git config --global user.email johndoe@example.com文本编辑器
git config --global core.editor vi差异分析工具
git config --global merge.tool vimdiff查看配置信息
git config --list获取帮助
$ git help <verb>$ git <verb> --help$ man git-<verb>git基础1.创建工作路径mkdir democd demo2.创建项目仓库git init3. 将当前项目代码commitgit add .git commit -m "first commit"4.建立远程连接,并第一次代码上传$ git remote add origin git@github.com:demo.git$ git push origin master1. git status获取状态,看当前工程时候被修改过2.当存在文件的修改而没有新的文件加入时git commit -am "xxxx"3.当存在有新建的文件时,应该先将新文件加入到“仓库”中,再commit(1)git add .(2)git commit -am "xxx"4.git pull从服务器中取到最新的代码,将其与自己的代码合并,若merge(合并)出现conflict(冲突)时,找到产生冲突的文件,将其修改无误后再次git status ----------(重新确认一遍)git commit -am "xxxx"5.git push将自己修改的代码传到服务器git log 查看提交历史git log –p -2 常用 -p 选项展开显示每次提交的内容差异,用 -2 则仅显示最近的两次更新gitk 使用图形化工具查看提交历史远程仓库的使用git remote 查看当前的远程仓库git remote -v 显示对应的克隆地址$ git remoteorigin$ git remote add pb git://github.com/paulboone/ticgit.git$ git remote -vorigin git://github.com/schacon/ticgit.gitpb git://github.com/paulboone/ticgit.git$ git fetch pbremote: Counting objects: 58, done.remote: Compressing objects: 100% (41/41), done.remote: Total 44 (delta 24), reused 1 (delta 0)Unpacking objects: 100% (44/44), done.From git://github.com/paulboone/ticgit * [new branch] master -> pb/master * [new branch] ticgit -> pb/ticgitgit push origin master 推送数据到远程仓库git remote show origin 查看远程仓库信息git remote rename pb paul 远程仓库的重命名(pb => paul)git remote rm paul 远程仓库paul的删除标签git tag 显示已有的标签git tag -l 'v1.4.2.*' 显示以v1.4.2.x形式的标签$ git tag -a v1.4 -m 'my version 1.4'$ git tagv0.1v1.3v1.4$ git show v1.4tag v1.4Tagger: Scott Chacon <schacon@gee-mail.com>Date: Mon Feb 9 14:45:11 2009 -0800my version 1.4commit 15027957951b64cf874c3557a0f3547bd83b3ff6Merge: 4a447f7... a6b4c97...Author: Scott Chacon <schacon@gee-mail.com>Date: Sun Feb 8 19:02:46 2009 -0800 Merge branch 'experiment'$ git tag v1.4-lw$ git tagv0.1v1.3v1.4v1.4-lwv1.5$ git push origin v1.5Counting objects: 50, done.Compressing objects: 100% (38/38), done.Writing objects: 100% (44/44), 4.56 KiB, done.Total 44 (delta 18), reused 8 (delta 1)To git@github.com:schacon/simplegit.git* [new tag] v1.5 -> v1.5$ git push origin --tagsCounting objects: 50, done.Compressing objects: 100% (38/38), done.Writing objects: 100% (44/44), 4.56 KiB, done.Total 44 (delta 18), reused 8 (delta 1)To git@github.com:schacon/simplegit.git * [new tag] v0.1 -> v0.1 * [new tag] v1.2 -> v1.2 * [new tag] v1.4 -> v1.4 * [new tag] v1.4-lw -> v1.4-lw * [new tag] v1.5 -> v1.5分支新建分支
git branch issue1 新建一个分支,名字为issue1git checkout issue1 切换到分支issue1等同于
git checkout -b issue1 生存一个本地分支并切换到它
git commit -am ‘fix issue1’ 修改后提交
git branch 列出当前所有分支的清单git branch -v 查看各个分支最后一次 commit 信息git branch --merged 查看哪些分支已被并入当前分支git branch --no-merged 查看尚未合并的工作git checkout master 切换到主分支git merge issue1 合并issue1到主分支git push origin issue1 递交到远程git checkout -b issue1 origin/issue1 复制远程分支到本地git branch -d issue1 删除本地分支git branch -D testing 强制删除本地分支git push origin :issue1 删除远程分支