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