开始blog,主要是想记录下来日常工作中的一些心得。以Git开篇.
Git 入门最好的文档无疑是proGit,在网上可以搜到。下面是平常使用时的一些常用命令,以备查询。
如果你在linux下已经很熟悉git了,但又有在windows下管理代码的需要,msysgit 是个很好的工具。
a. 开发使用模式
A. 检出分支: git clone thingtalk@192.168.1.23:/home/thingtalk/wangtao/kernel.git
B. 创建自己的开发分支并切换到新分支: git checkout -b (分支名)
C. 修改并提交修改: git commit -a -m (COMMENT)
D. 切换到master分支并更新到最新: git checkout master; git pull
E. 将开发分支集成到master分支: git merge (开发分支名)
F. 将master推送到服务器: git push
G. 创建标签: git tag -a (标签名) -m (COMMENT)
H. 推送标签到服务器: git push origin (标签名)
I. 其他人同步到最新: git pull
J. 服务器版本发布: 在服务器建立发布工作目录, 并删除master分支, 发布代码仅与远程分支origin/master同步.
K. 制作修改日志: git shortlog
b. 部署
A. 把现有仓库导出为裸仓库: git clone --bare DIR DIR.git
B. 把裸仓库移到服务器, 保证每个人有访问权限
c. 一些命令
A. 列出当前所有分支: git branch
B. 查看各个分支最后一个提交对象的信息: git branch -v
C. 查看哪些分支已经被并入当前分支: git branch --merged
D. 查看哪些分支没有合并到当前分支(不是当前分支的祖先): git branch --no-merged
E. 同步远程服务器上的数据到本地: git fetch orign
F. 推送本地分支: git push (远程仓库名) (本地分支名):(远程仓库上的新分支名)
G. 在远程分支的基础上分化出一个本地分支: git checkout -b (本地分支名) (远程仓库名/远程分支名)
H. 检查当前文件状态: git status
I. 跟踪新文件/暂存已跟踪文件: git add
J. 忽略某些文件: 创建.gitignore文件
K. 比较当前文件和暂存文件差异: git diff 比较暂存文件和上次快照之间的差异: git diff --cached
L. 提交: git commit
M. 打标签: git tag -a (版本号) -m ("描述")
N. 将标签推送到服务器: git push origin (标签名)
O. 抓取远程仓库的更新到本地: git fetch (仓库名)
P. 如果设置了某个分支用于跟踪某个远程分支, 可以使用git pull 自动抓取数据下来
Q. 查看远程仓库信息: git remote show (仓库名)
R. 后期加注标签: git tag -a (标签) (commit 校验和)
S. 在本地创建跟踪分支: git checkout -b (分支名) (仓库名)/(分支名)
T. "git add ."处理目录下所有的修改和添加的文件,但是不处理删除的文件
U. 列表中没有 * 的分支通常都可以用 git branch -d 来删掉
V. 从远程仓库抓取数据 git fetch [remote-name]此命令会到远程仓库中拉取所有你本地仓库中还没有的数据
W. 查看当前的远程库, 可以用 git remote -v 命令
X.
Git 中的著色:
git config --global color.ui true
Y. hooks 默认目录是GIT_DIR,需要切换:
if [ -n $GIT_DIR ]; then
unset GIT_DIR
cd ..
fi
A1. 配置编辑器: git config --global core.editor emacs
B1. 配置代码比较工具: git config --global merge.tool vimdiff
C1. roll back 某个文件到某个版本: git checkout b743075e81 -- DIR/FILE.ext
d. 创建仓库
A. 要对现有的某个项目开始用 Git 管理,只需到此项目所在的目录,执行:git init
B. 添加当前目录下所有文件: "git add . "
C. 提交更新: git commit
e. 推送本地分支
A. 要想和其他人分享某个本地分支,你需要把它推送到一个你拥有写权限的远程仓库
如果你有个叫 serverfix 的分支需要和他人一起开发,可以运行 git push (远程仓库名) (分支名)
也可以运行 git push origin serverfix:serferfix 来实现相同的效果
B. 接下来,当你的协作者再次从服务器上获取数据时,他们将得到一个新的远程分支 origin/serverfix