@hx
2018-10-09T06:57:50.000000Z
字数 2202
阅读 1164
Others
git initgit add fileName.txt(可一次添加多个文件,一次提交即可。) git add . Git会递归地将你执行命令时所在的目录中的所有文件添加上去,所以如果你将当前的工作目录作为参数,它就会追踪那儿的所有文件。 git add -i交互式的方式进行添加。git commit -m "添加或修改的信息"git statusgit diffgit log || git log --pretty=oneline --pretty=oneline详细查看每次commit的变化。HEAD表示当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100,如git reset --hard HEAD^退回到上一个版本。git reset --hard 3628164// 此数字为 log 后生成的 hash值git tag -a 标签名 -m "备注" [ hash (这里可以加上commit的hash值,是对具体某次commit打tag) ] ;查看所有tag git tag;查看某个tag的详细信息 git show 标签名git refloggit checkout -- fileName.txtgit reset HEAD fileName.txtrm fileName.txt后,git status提示工作区和版本库不一样,1.确认删除:git rm删掉,并且git commit。2.git checkout --test.txt创建分支:git branch <name>
查看分支:git branch
切换分支:git checkout <name>
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name>
删除分支:git branch -d <name>
GitHub使用SSH加密,所以需要生成SSH key:$ ssh-keygen -t rsa -C "youremail@example.com",成功后打开.ssh文件夹,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSHKey的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。
第二步:在GitHub中添加SSH key,粘贴id_rsa.pub的内容。
git remote add 远程名称 远程地址git remote -vgit push -u 远程名称 master,如果不成功,可强制push:git push -u origin master --force。master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。 git push origin master推送到远程服务器了。vim .git/config,修改到
[remote "origin"]url = git@github.com:SuperHuangXu/eggBlog.gitfetch = +refs/heads/*:refs/remotes/github/*url = git@git.coding.net:superhx/eggBlog.git
方法二:在添加第二个远程地址时git remote set-url --add origin 远程地址
git clone git@github.com:michaelliao/gitskills.git
.gitignore使用规范文件.gitignore的格式规范如下:
所有空行或者以注释符号 # 开头的行都会被 Git 忽略。
可以使用标准的 glob 模式匹配。
匹配模式最后跟反斜杠(/)说明要忽略的是目录。
要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反。
所谓的 glob 模式是指 shell 所使用的简化了的正则表达式。星号(*)匹配零个或多个任意字符;[abc] 匹配任何一个列在方括号中的字符(这个例子要么匹配一个 a,要么匹配一个 b,要么匹配一个c;问号(?)只匹配一个任意字符;如果在方括号中使用短划线分隔两个字符,表示所有在这两个字符范围内的都可以匹配(比如 [0-9]表示匹配所有 0 到 9 的数字)。
保留空文件夹,在文件夹中新建文件.gitkeep
我们再看一个.gitignore文件的例子:
# 此为注释 – 将被 Git 忽略# 忽略所有 .a 结尾的文件*.a# 但 lib.a 除外!lib.a# 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO/TODO# 忽略 build/ 目录下的所有文件build/# 会忽略 doc/notes.txt 但不包括 doc/server/arch.txtdoc/*.txt# 忽略 doc 目录中所有 .txt 文件doc/**/*.txt**/的用法是git 1.8.2之后的特性。