设置用户名与邮箱
git config –global user.name "My Name"
git config –global user.email "my@email.com"
从已有的git库中提取代码
git clone git@server:app.git myrepo
每次更改代码的操作
更新本地代码到最新版本(需要merge才能合到本地代码中)
git fetch
合并更新后的代码到本地
git merge
更新代码方式的另一种方法(git pull是git fetch和git merge命令的一个组合)
git pull
修改代码后,查看已修改的内容
git diff –cached
将新增加文件加入到git中
git add file1 file2 file3
从git中删除文件
git rm file1
git rm -r dir1
提交修改
git commit -m ‘this is memo’
如果想省掉提交之前的 git add 命令,可以直接用
git commit -a -m ‘this is memo’
commit和commit -a的区别, commit -a相当于:
第一步:自动地add所有改动的代码,使得所有的开发代码都列于index file中
第二步:自动地删除那些在index file中但不在工作树中的文件
第三步:执行commit命令来提交
提交所有修改到远程服务器,这样,其它团队成员才能更新到这些修改
git push
其它常用命令
显示commit日志
git log
不仅显示commit日志,而且同时显示每次commit的代码改变。
git log -p
回滚代码:
git revert HEAD
你也可以revert更早的commit,例如:
git revert HEAD^
将branchname分支合并到当前分支中。(如果合并发生冲突,需要自己解决冲突)
git merge branchname
创建 git 仓库
初始化 git 仓库
mkdir project # 创建项目目录
cd project # 进入到项目目录
git init # 初始化 git 仓库。此命令会在当前目录新建一个 .git 目录,用于存储 git 仓库的相关信息
初始化提交
touch README
git add . # 将当前目录添加到 git 仓库中, 使用 git add -A 则是添加所有改动的文档
git commit -m "Initial commit"
git remote add origin git@github.com:lugir/repo.git # 设置仓库
修补提交(修补最近一次的提交而不创建新的提交)
git commit –amend -m "commit message."
提交冲突时可以合并后再推送
git pull # 获取远程版本库提交与本地提交进行合并
git push # 提交
使用别人的仓库
git clone http://path/to/git.git # clone 的内容会放在当前目录下的新目录
将代码从本地回传到仓库
git push -u origin master
使用 git status 查看文件状态
git status
查看提交日志
git log # 查看提交信息
git log –pretty=oneline # 以整洁的单行形式显示提交信息
Git 分支
git branch # 查看分支
git branch 6.x-1.x # 添加分支 6.x-1.x
git branch checkout master # 切换到主分支
git branch -d 6.x-1.x # 删除分支 6.x-1.x
git push origin :branchname # 删除远端分支
Git 标签
git tag # 查看分支
git tag 6.x-1.0 # 添加标签 6.x-1.0
git show 6.x-1.0 # 查看标签 6.x-1.0 的信息
git tag -a 6.x-1.0 965e066 # 为之前提交的信息记录 965e066 加上标签
git push –tags # 提交时带上标签信息
git push origin :/refs/tags/tagname # 删除远端标签
从 git 仓库中导出项目
git archive –format tar –output /path/to/file.tar master # 将 master 以 tar 格式打包到指定文件
使用 Git 的一些基本守则:
当要commit/提交patch时:
使用 git diff –check 检查行尾有没有多余的空白
每个 commit 只改一件事情。如果一个文档有多个变更,使用 git add –patch 只选择文档中的部分变更进入 stage
写清楚 commit message
转至:http://lztian.com/blog/1878.html