本文是写给自己看的备忘
不用每次都输入账号密码
git config --global credential.helper store
git clone http://xxx/foo.git
cd foo
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master
op .gitignore
加上 *~
面得被 emacs 临时文件干扰
fork 后 和同步github原仓库代码
git remote -v
git remote add raw https://github.com/cevio/koa-rapid-router.git
git fetch raw
git checkout master
git merge raw/master
git push
记录git的相关操作
// 全局配置
git config --global user.name "xxx"
git config --global user.email "xxx@xxx.xx"
git config --global i18n.logoutputencoding gbk
解决emacs 分页不好显示 提示 terminal is not fully functional
git config --global core.pager ""
tag
git tag -l -n 命令可以查看所有的版本
git checkout tag_name
c:/.gitconfig 就是改这个文件的内容啦,不如我直接去编辑好了
(find-file "c:/.gitconfig")
如果是 linux 下 对应的是 ~/.gitconfig 文件
// git 还原整个仓库
git reset --hard b80b8583665fe2160820ee76ee94c3a992bb4927
// 撤销add
git reset HEAD .
还原某个文件
git checkout 635e6fd95ac63b2ffc0c5e3128c4025405106ba5 mainwindow.ui
git pull 更新仓库版本
git add -u 添加已经在库里的修改删除等
git add -A 全部
git commit -m "消息"
git push 提交修改
git status 查看当前 add 状态
git checkout filename 还原filename
git rm 删除文件
撤销
git reset HEAD bin/*
建议先 pull
先 add 再 commit 最后 push
git log -3 -p 查看日志 最近3次的日志 -p 慎用,会输出很多东西 查看差异
建个本地仓库
建个新空目录 然后
f:/work/git/mygit $ git --bare init
看到下面一行提示
Initialized empty Git repository in f:/work/git/mygit/.git/
ok 建好了
注意这里要写 --bare 的,否则创建的目录在别的目录下无法push上去
来到 f:/work/git 目录
git clone f:/work/git/mygit/ mygit2
这样 mygit2 就被创建到了 git 目录下
op readme 然后写点东西
git add readme
git commit -m "add readme"
git push
这样就把仓库提交上去了
Perhaps you should specify a branch such as 'master'.
git push origin master
分支
git branch -a 查看所有分支
git checkout remotes/origin/emwin 切换分支
git push origin mybranch:mybranch 把本地分支push到远程
git branch -D emwin 删除本地分支
git checkout -b emwin remotes/origin/emwin 在本地新建一个 emwin分支 拷贝自 remotes/origin/emwin
git branch -m remotes/origin/emwin emwin 重命名分支 把 remotes/origin/emwin 改为 emwin
git push origin --delete new_a 删除远端分之
TARGET_LINK_LIBRARIES(emwin_demo1 debug msvcrtd.lib debug MSVCPRTD.LIB)
TARGET_LINK_LIBRARIES(emwin_demo1 optimized msvcrt.lib optimized MSVCPRT.LIB)
~/.gitconfig
[user]
name = wangjunsheng
email = xxxx@xxx.xx
[core]
autocrlf = false
safecrlf = true
pager =
[alias]
lg = log --pretty=oneline
cm = commit -m
st = status
d = diff
[credential]
helper = store
[push]
default = matching
rm -r custom_widgets/property_sheets/demo/common/property
git checkout custom_widgets/property_sheets/demo/common/property
git clean命令用来从你的工作目录中删除所有没有tracked过的文件
git clean经常和git reset --hard一起结合使用. 记住reset只影响被track过的文件, 所以需要clean来删除没有track过的文件. 结合使用这两个命令能让你的工作目录完全回到一个指定的<commit>的状态
用法
git clean -n
是一次clean的演习, 告诉你哪些文件会被删除. 记住他不会真正的删除文件, 只是一个提醒
git clean -f
删除当前目录下所有没有track过的文件. 他不会删除.gitignore文件里面指定的文件夹和文件, 不管这些文件有没有被track过
git clean -f <path>
删除指定路径下的没有被track过的文件
git clean -df
删除当前目录下没有被track过的文件和文件夹
git clean -xf
删除当前目录下所有没有track过的文件. 不管他是否是.gitignore文件里面指定的文件夹和文件
git reset --hard和git clean -f是一对好基友. 结合使用他们能让你的工作目录完全回退到最近一次commit的时候
git clean对于刚编译过的项目也非常有用. 如, 他能轻易删除掉编译后生成的.o和.exe等文件. 这个在打包要发布一个release的时候非常有用
下面的例子要删除所有工作目录下面的修改, 包括新添加的文件. 假设你已经提交了一些快照了, 而且做了一些新的开发
git reset --hard
git clean -df