1. 创建SSH key
ssh-keygen -t rsa -C "youremail@example.com"
2. 更新代码
git pull
git fetch 没有merge的pull 没用过这个,不知道好用不
3. 添加文件
git add . 暂存新增的和修改的文件,不包括已删除的文件(仅限当前目录以及子目录)
git add -u 暂存修改的和删除的文件,不包括新增的文件
git add -A 暂存所有文件,包括新增的,修改的,已删除的文件
git add -p 暂存一部份,会一直提示(y/n)选择是否暂存,很麻烦
4. 提交文件
git commit -m “本次提交说明” (这里如果不加-m 会强制跳转到编辑器,在里边第一行填写,然后保存即可)
git commit -am “本次提交说明” (add 和commit的结合体,,省略了add步骤)
***下面这个命令尽量不要使用或者只有自己开发的时候,否则会给队友带来灾难(卧槽明明更新了的,怎么没了??????)
git commit --amend -m“本次提交说明” (重新提交,最终只会有一次提交,第二次的提交会覆盖第一次的提交结果,适用于提交完了才发现有几个文件没有添加或者提交信息填写错误的情况)
git commit -p (提交一部分代码,需要手动确认是否提交 y/n)
5.推送到远程分支
git push origin 分支 推送本地当前分支到远程对应分支(通常是master)
git push origin 本地分支:远程分支(指定提交的本地分支和远程分支)
6.本地分支与远程分支建立关联
git branch --set-upstream 分支 origin/分支
这个命令,可以建立本地分支与远程分支的联系,以后在push的时候不用每次都指定分支到了,即直接输入 git push,省略了origin 分支
7.git忽略某些文件
忽略规则
以斜杠“/”开头表示目录;
以星号“*”通配多个字符;
以问号“?”通配单个字符
以方括号“[]”包含单个字符的匹配列表;
以叹号“!”表示不忽略(跟踪)匹配到的文件或目录;
一般情况下,我们应该在创建项目之前,建好忽略文件,忽略掉应该忽略的文件;
但是,有时候我们需要临时添加一些忽略文件,这个时候就需要修改 .gitignore文件,以为该文件已经被git追踪,所以我们还要从git版本控制器中将其移除,用下面的命令:
git rm --cached 文件名 或者 git rm --cached -r 文件夹 (-r 表示递归)
注意:这样会将该文件从git仓库移除,所以开发人员都做好备份
使用完此命令后,我们需要将修改后的.gitignore和删除的这个文件,一并push到git远程仓库,然后所有开发人员做好自己的备份,然后pull更新,
这样更新下来会将该文件删除掉,,然后我们需要自己将备份的文件拷贝进项目,以后该文件就不会再被git追踪了.以后修改该文件,需要复制粘贴给大家了.
可能有点麻烦,但是我理解的就是这样的了.
8.其他一般用得着的指令
*设置一些快捷指令
git config --global alias.st status 使用git st 代替 git status 命令
git config --global alias.co checkout 使用git co 代替git checkout命令
git config --global alias.ci commit 使用git ci 代替 git commit命令
以此类推
*其他的一些设置
git config -l 或 git config --list 列举所有git的配置
git config --global color.ui true 让git显示颜色,
设置commit中的姓名和email,去掉 --global参数则为针对每个repo单独设定姓名和邮箱
git config --global user.name "your name"
git config --global user.email "your email"
大小写问题:
git config core.ignorecase false (不推荐)关闭git忽略大小写配置,即可检测到大小写名称更改
如果遇到大小写问题(保证core.ignorecase true) 调用git mv ABC.java Abc.java (git status 提示 renamed: ABC.java -> Abc.java)commit push 即可
core.ignorecase不为true,同事更新的时候会提示(error: The following untracked working tree files would be overwritten by merge:.......),改为false即可
总结:
--global 全局 --local 本仓库
增配置 git config --global --add configName configValue
删配置 git config --global --unset configName (只针对存在唯一值的情况)
改配置 git config --global configName configValue
查配置 git config --global configName
git log -n 仅显示最近n条提交
git log -p filename 查看文件的每一个详细的历史修改,如果没有-p选项,只显示提交记录,不显示文件内容修改,git log -p -3 filename 显示最近的3次提交。
以下内容,为日志显示的常用参数
-p
按补丁格式显示每个更新之间的差异。
--stat
显示每次更新的文件修改统计信息。
--shortstat
只显示 --stat 中最后的行数修改添加移除统计。
--name-only
仅在提交信息后显示已修改的文件清单。
--name-status
显示新增、修改、删除的文件清单。
--abbrev-commit
仅显示 SHA-1 的前几个字符,而非所有的 40 个字符。
--relative-date
使用较短的相对时间显示(比如,“2 weeks ago”)。
--graph
显示 ASCII 图形表示的分支合并历史。
--pretty
使用其他格式显示历史提交信息。可用的选项包括 oneline,short,full,fuller 和 format(后跟指定格式)。
9.对于android项目,git需要忽略的文件
- .idea 文件夹
- .gradle 文件夹
- 所有的 build 文件夹
- 所有的 .iml 文件
- local.properties 文件
10.特殊操作(慎用)
1)
git clean 参数
-n -----显示将要删除的文件和目录;
-x -----删除忽略文件已经对git来说不识别的文件
-d -----删除未被添加到git的路径中的文件
-f -----强制运行
2)
git mv -f [你想要删掉的文件] [你想要留下的文件]
git mv -f a.js A.js
等同于:
git rm a.js
git add A.js
网友评论