forked from dcxy/learngit
-
Notifications
You must be signed in to change notification settings - Fork 0
/
GitOfHalu126.txt
75 lines (74 loc) · 5.64 KB
/
GitOfHalu126.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
1、git init:初始化一个Git仓库。
2、添加文件到Git仓库,分两步:
第一步,使用命令git add <filename>,注意,可反复多次使用,添加多个文件;
第二部,使用命令git commit -m "提交说明",完成。
3、git status:打印整个工作区的状态。
4、git diff <filename>:查看修改内容。
5、git log:查看系统中的历史commit提交记录
如:git log 或git log --pretty=oneline
其中pretty指定打印提交记录内容的格式,可选的值有:oneline,short,medium,full,fuller,email,raw和一些自定义的字符格式。
补充:
--graph可以看到分支合并图。
--abbrev-commit打印简短commit-id。
6、git reset --hard <commit_id>:将head的值设定为指定的commit_id,
HEAD表示当前版本id,
HEAD^表示上一个版本id,
HEAD^^表示上上一个版本id,
HEAD~100表示上上100个版本id,
版本id也可以在git log命令中查看,commit就是。
7、git reflog:记录你的每一次有关head的历史命令记录
8、工作区(Working Directory):就是当前的工作目录。
版本库(Repository):工作区下的隐藏目录.git。
暂存区(stage):版本库中的index(或者是stage)文件。
git add命令就是把文件修改添加到暂存区(stage)中;
git commit命令就是把暂存区的所有内容提交到当前分支中。(如下图)
9、git checkout -- <filename>:把工作区中对filename文件的修改撤销掉
这里有两种情况:
一种是修改后还没放到暂存区(即:还没有使用git add命令),现在撤销修改就是回到和版本库一模一样的状态;
一种是已经添加到暂存区后,又作了修改,现在撤销修改就是回到添加到暂存区后的状态。
总之,就是让这个文件回到最近一次git commit或git add时的状态
补充:
git checkout <name>:切换到相应的分支上。
10、git reset HEAD <filename>:把暂存区中对filename的修改撤销掉(此步是把修改从暂存区撤销到工作区,要想撤销工作区的修改,要进一步的使用git checkout -- <filename>命令)
如果修改已经提交到版本库中了,在没有把本地版本推送到远程的情况下可以使用git reset --hard <commit_id>命令进行版本回退了。
11、git rm <filename>:在暂存区记录下要删除文件filename,使用git commit命令提交删除申请,从版本库中删除文件。
12、ssh-keygen -t rsa -C "[email protected]":使用自己的邮件在用户主目录下生成SSH key。(要在主目录下运行此命令)
-t 指定加密方式,可以值有:rsa、dsa,默认为:dsa
-C是添加注解comment,可以不是自己的邮件,也可以不要此项。
13、git remote add origin [email protected]:<github用户名>/<仓库名>.git 将本地仓库与github上的仓库关联起来。
origin为远程库的名字。
14、git push -u origin master:将本地库的所有内容推送到远程库上。(只有第一次推送的时候才加上-u)
15、git config --global user.name "用户名":配置缺省的用户名。
16、git config --global user.email "":配置缺省的email,最好和注册时使用一样的email。
17、git clone [email protected]:<用户名>/<仓库名>.git:从远程库中克隆版本库到本地。
18、git branch:查看分支。
补充:
git branch --set-upstream branch-name origin/branch-name:创建本机分支与远程分支的链接关系。
19、git branch <name>:创建分支name。
20、git checkout <name>:切换到分支name。
21、git checkout -b <name>:创建并切换到分支name。
22、git merge <name>:合并name分支到当前分支中。
如果合并的时候产生了冲突,git会告诉我们在哪个文件上产生了冲突(git status也会告诉我们冲突的文件),必须手动解决冲突后在提交。
补充:
--no-ff参数表示禁止使用Fast forward模式合并,应为本次合并要创建一个新的commit,所以要加入-m,将commit描写写进去。
23、git branch -d <name>:删除分支name。
补充:
git branch -D <name>:强行删除那么分支。
24、git stash:把当前工作现场储藏到工作栈中(入栈操作)。
25、git stash list:查看储藏工作现场的栈里的内容。
26、git stash apply stash@{n}:将工作栈中的第n个工作现场回复出来。
27、git stash drop:删除工作栈中第一个工作现场。
28、git stash pop:回复工作现场的同时把相应的内容从工作栈中删除。(出栈操作)。
29、git remote:查看远程库信息。
-v:查看远程库详细信息,其中fetch是抓取地址;push是推送地址。
30、git pull:把别人最新的提交从远程上抓取下来。
31、git tag <name> [commit-id]:在commit-id处创建一个标签,commit-id默认为HEAD。
-a tagname -m "blablabla...":指定标签信息。
-s tagname -m "blablabla..." :可以使用PGP签名标签。
32、git tag:查看所有标签。
33、git show <tagname>:查看标签详细信息。
34、git tag -d <tagname>:删除本地标签。
35、git push origin :refs/tags/tagname:删除一个远程标签。
36、git push origin origin tagname:推送标签到远程。
37、git push origin --tags:推送全部标签到远程。
38、.gitignore文件:忽略特殊文件,https://github.com/github/gitignore。