git常用命令
开始的时候
1 git config --global user.name "Your Name" 2 git config --global user.email "email@example.com"
查看你的信息
1 git config --list
克隆仓库
1 git clone [url]
版本库
1 mkdir learngit 2 cd learngit 3 pwd 4 /Users/michael/learngit 5 初始化: 6 git init
文件添加到版本库
1 #创建文件 2 vim readme.txt 3 cat readme.txt 4 Git is a version control system. 5 Git is free software. 6 #文件添加到仓库 7 git add readme.txt 8 #把文件提交到仓库 9 git commit -m "wrote a readme file"
跳过使用暂存区(不适用git add)
1 git commit -a -m "说明的文字" 2 3 4 只需要加个-a选项
查看状态
git status #查看状态
git diff readme.txt #比较文件上次修改的东西,,比较当前工作目录中的文件和暂存区域快照之间的差异,只是显示尚未暂存的改动
git diff --cached #已经暂存的将要添加到下次提交里的内容
1 1 git status 2 2 [root@pup learngit]# git status 3 3 # On branch master 4 4 nothing to commit (working directory clean) 5 5 修改文件后在查看 6 6 [root@pup learngit]# vim readme.txt 7 7 [root@pup learngit]# git status 8 8 # On branch master 9 9 # Changed but not updated: 10 10 # (use "git add <file>..." to update what will be committed) 11 11 # (use "git checkout -- <file>..." to discard changes in working directory) 12 12 # 13 13 # modified: readme.txt 14 14 # 15 15 # Untracked files: 16 16 # (use "git add <file>..." to include in what will be committed) 17 17 # 18 18 # .readme.txt.swp 19 19 no changes added to commit (use "git add" and/or "git commit -a") 20 [root@pup learngit]# git diff readme.txt 21 diff --git a/readme.txt b/readme.txt 22 index 4dfbf00..a6cb86a 100644 23 --- a/readme.txt 24 +++ b/readme.txt 25 @@ -1,3 +1,3 @@ 26 Git is a distributed version control system. 27 Git is free software distributed under the GPL 28 -111111111111111111111111111111111111111111111 29 +222222222222222222222222222222222222222
移除文件(从暂存区中移除)
git rm 文件 #会连带从工作目录中删除指定的文件 git rm -f 文件 #删除之前修改过并且已经放到暂存区域的文件,不可恢复 git rm --cached 文件 #从暂存区域移除但是文件依然保留在当前工作目录中
移动文件(给文件改名字)
git mv README.md README
相当于
$ mv README.md README
$ git rm README.md
$ git add README
版本回退
1 git log #命令显示从最近到最远的提交日志 2 git log --pretty=oneline #简洁的显示
git log -p -2 #-p 每次提交的内容差异,-2最近两次提交 3 在Git中,用HEAD表示当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,一般写成HEAD~100 4 git reset --hard HEAD^ #回退到上一个版本 5 git reflog查看命令历史,以便确定要回到未来的哪个版本 6 回退: 7 git reset --hard commit_id 8 回到未来 9 git reset --hard commit_id
定制要显示的记录格式
git log --pretty=format 格式 例如: git log --pretty=format:"%h - %an, %ar : %s"
工作区和暂存区概念理解
1 git add命令实际上就是把要提交的所有修改放到暂存区(Stage),然后,执行git commit就可以一次性把暂存区的所有修改提交到分支。 2 前面讲了我们把文件往Git版本库里添加的时候,是分两步执行的: 3 4 第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区; 5 6 第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。 7 从来没被添加过的文件状态是Untracked
具体过程如下:
刚开始:参考这里
文件修改提交
最后
撤销修改
1,当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时
1 git checkout -- file 2 git checkout -- readme.txt
2当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,返回到以前的工作区的内容
git reset HEAD 文件 #从暂存区返回到工作区
3提交了(commit)了但是可能漏了几个文件没有(add)添加或者提交信息写错了,这是运行
git commit --amend #尝试重新提交
eg
$ git commit -m 'initial commit' $ git add forgotten_file $ git commit --amend
最终你只会有一个提交 - 第二次提交将代替第一次提交的结果。