@hx
2018-10-09T14:57:50.000000Z
字数 2202
阅读 1044
Others
git init
git add fileName.txt
(可一次添加多个文件,一次提交即可。) git add .
Git会递归地将你执行命令时所在的目录中的所有文件添加上去,所以如果你将当前的工作目录作为参数,它就会追踪那儿的所有文件。 git add -i
交互式的方式进行添加。git commit -m "添加或修改的信息"
git status
git diff
git 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 reflog
git checkout -- fileName.txt
git reset HEAD fileName.txt
rm 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 -v
git 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.git
fetch = +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.txt
doc/*.txt
# 忽略 doc 目录中所有 .txt 文件
doc/**/*.txt
**/的用法是git 1.8.2之后的特性。