1、如何用Eclise的 Egit 忽略文件和文件夹?
选中文件或文件夹, 鼠标右键选 team - > Ignore
2、git 的合并 (egit 插件不太好用,只会把新旧两大块代码都标识出来,而不像svn一样按行来合并。)
git checkout "合并后的分支" /* 先切换到目标分支,即其他的分支会被汇总到该分支*/
git merge “其他的分支1”
git merge "其他分支2"
// 然后再用编辑器修改 有冲突的代码。
// 修改完成后 用 git add , git commit 将代码提交即可。
3、撤销 merge操作(merge 后没有进行任何修改)
git chekcout "新合并的分支”
git reset --hard "合并前的版本号"
4、将本地的分支与远程的分支关联起来 (If you wish to set tracking information for this tranch you can do so with:)
git branch --set-upstram-to=origin/<branch> <LocalBranch>
5、在本地基于当前分支建一个新分支
git checkout -b "new_branch"
基于一个commit 建一个分支:
git checkout -b "new_branch" 6e4438468
6、将本地的新分支上传到远程
git push --set-upstream origin "branch_name"
或者用 -u 代替 --set-upstream
git push -u origin "branch_name"
7、删除远程分支
a、 git push origin :"branch_name"
冒号前面的空格不能少,原理是把一个空分支push到server上,相当于删除该分支。
b、git push origin --delete "branch_name"
上述命令只是删除了远程服务器上的分支指针,Git会保留到下一次GC的触发
8、删除本地分支
git branch-d xxxxx
git branch-D xxxxxx 强制删除
9、从远程取一个新分支到本地。
git fetch origin "branch_name" // 此时用 git branch 命令并看不到本地有该分支
git checkout -b "branch_name” origin/"branch_name" // 本地已经可以看到分支了,相当于在本地新建了一个分支
10. 从远程仓库 copy 项目
git clone <repo><directory> 或git colone [url]
如: git clone git://github.com/schacon/grit.git // 在当前目录下克隆 girt项目的代码库,目录名为 grit.
// 在当前目录下克隆 girt项目的代码库,目录名为newGritName .
git clone git://github.com/schacon/grit.git newGritName
git clone http://code.com/source/test.git // 在当前目录下克隆 girt项目的代码库,目录名为 test
11. 撤销当前分支的修改:
git checkout. // 注意后面有个"."
12. 撤销已经 add 但没有 commit 的文件, 分为两步:
1) git reset . // 注意后面有个 “." 撤销的是所有上次 add的文件。
git reset HEAD "file_name" // 撤销指定的文件。
2) git checkout "file_name"
13. 撤销merge的分支
a、merge后没有进行其它操作:
1)、git checkout 【merge 操作时所在的分支】
2)、git reset --hard 【merge前的版本号】
14、恢复当前分支的上一个版本,或任意指定id的版本(即使已经 commit 操作)。
git reset --hard HEAD^ //恢复到上一个版本
git restet --hard <分支id> // 恢复到指定 Id的版本。
如: git reset --hard 9e8a761
15. Git 重命名本地分支
git branch -m<old_branch_name><new_branch_name>
16. 查看当前分支的提交记录:
git log // 文本格式
git log --graph //文本图形格式
git log --oneline // 显示分支id 及注释。
17. 删除本地有但远程库中已经不存在的分支
a、查看远程库分支状态: git remote show origin
b、状态为stale 的分支即为远程库已经不存在
c、运行git remote prune origin 命令本地的这些分支
14. git 生成ssh key,避免以后每次需要输入密码。
#设置git 的user name 和 email
$ git config --global user.name "username"
$ git config --global user.email "user@email.com"
#生成一个新的 SSH秘钥,id_rsa 为私钥, id_rsa.pub为公钥
$ ssh-keygen -t rsa -C "you_email@email.com" //三次回车使用默认值
#将 SSH私钥添加到 ssh-agent
配置 ssh-agent 程序使用 SSH key
1)、后台启动 ssh-agent
$ eval $(ssh-agent -s)
Agent pid 2297
$ ssh-add /c/users/username/.ssh/id_rsa
Identity added: /c/Users/username/.ssh/id_rsa (/c/Users/username/.ssh/id_rsa)
2)、把公钥内容拷贝到网站上
15. 如何回退远程master 分支
第一步: git reset --hard XXXXXX // 在master分支下,回退到某个版本。
第二步: git push --force // 用本地分支强制覆盖远程的分支
第三步: 其他成员的操作,要么删除自己本地的 master本支,重新从远程取。
要么用 git reset --hard origin/master 命令强制用远程分支同步本地分支。
16. git reflog --date=local --all | grep branch
17、回退对当前分支的merge 操作:
“git merge --abort”
18、fatal: Authentication failed for又不弹出用户名和密码 解决办法:
git config --system --unset credential.helper
19、查看已经合并到指定分支的分支
本地: git branch --merged "分支名-可选“
远程: git branch -r --merged master
20、查看尚未合并到指定分支的所有分支
本地: git branch --no-merged 分支名-可选“
远程: git branch -r --no-merged 分支名-可选“
20、创建注释标签
git tag -a v2.0 -m "release version 2.0"
git push origin v2.0 //将tab 推送到远程服务
git tag -d v2.0 //删除tag
21、初始化远程仓库的方式
a、从命令行创建一个新的库
git clone https://remoteReop.git
cd 本地库目录
touch README.md
git add README.md
git commit -m "add README"
git push -u oirgin master
b、从命令行推送现有空的库
cd existing_folder
git init
git remote add origin http://remoteRepo.git
git add .
git commit -m "inital commit"
git push -u origin master
c、从命令行推送已有库
cd existing_repo
git remote add origin http://remoteRepo.git
git push -u origin --all
git push -u origin --tags
d、也可以如此操作
git init
git clone https://remoteRepo.git
git remote add origin http://remoteRepo.git
git push -u origin --all
22、 根据指定序列号新建分支
git checkout -b new_branch_name history_commit_id