git
1、选择一个合适的地方创建版本库的一个空目录:
mkdir myGitRepository
cd myGitRepository
pwd
2、通过git init命令把这个目录变成Git可以管理的仓库:
git init
3、编写一个 readme.txt文件:
touch readme.txt
4、用命令git add把 readme.txt文件添加到Git仓库:
git add readme.txt
5、用命令git commit把 readme.txt文件提交到Git仓库:
git commit -m "commit a readme.txt"
下面尝试修改、提交这个readme.txt文件
1、先修改readme.txt的内容
2、运行git status命令看看结果:
ubuntu@ubuntu:~/myGitRepository$ git status
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: readme.txt
Untracked files:
(use "git add <file>..." to include in what will be committed)
../.ICEauthority
../.Xauthority
../.bash_history
../.bash_logout
../.bashrc
../.cache/
../.config/
../.dmrc
../.gitconfig
../.local/
../.mozilla/
../.profile
../.sudo_as_admin_successful
../.xsession-errors
../.xsession-errors.old
../examples.desktop
../git-2.12.0.tar.gz
../git-2.12.0/
no changes added to commit (use "git add" and/or "git commit -a")
git status 命令可以时刻掌握仓库当前的状态,上面的命令告诉我们,readme.txt 被修改过了,但还没有准备提交的修改。
3、用git diff命令看看具体修改了什么内容:
ubuntu@ubuntu:~/myGitRepository$ git diff
diff --git a/myGitRepository/readme.txt b/myGitRepository/readme.txt
index 14ee423..dae84f9 100644
--- a/myGitRepository/readme.txt
+++ b/myGitRepository/readme.txt
@@ -1,2 +1,2 @@
-<U+FEFF>Git is a version control system.
-Git is free software.
\ No newline at end of file
+<U+FEFF>Git is a distributed version control system.^M
+Git is free software.^M
git diff 顾名思义就是查看 difference,可以从上面的命令输出看到,我们在第一行添加了一个“distributed” 单词。
知道了对 readme.txt 作了什么修改后,再把它提交到仓库就放心多了。
4、提交修改和提交新文件是一样的两步:
第一步:
git add readme.txt
执行第二步之前,我们先用git status看看当前仓库的状态:
ubuntu@ubuntu:~/myGitRepository$ git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
modified: readme.txt
Untracked files:
(use "git add <file>..." to include in what will be committed)
../.ICEauthority
../.Xauthority
../.bash_history
../.bash_logout
../.bashrc
../.cache/
../.config/
../.dmrc
../.gitconfig
../.local/
../.mozilla/
../.profile
../.sudo_as_admin_successful
../.xsession-errors
../.xsession-errors.old
../examples.desktop
../git-2.12.0.tar.gz
../git-2.12.0/
git status 告诉我们,将要被提交的修改包括 readme.txt,下一步,就可以放心地提交了:
第二步:
git commit -m "add distributed"
提交之后,我们再用git status看看当前仓库的状态:
ubuntu@ubuntu:~/myGitRepository$ git status
On branch master
Untracked files:
(use "git add <file>..." to include in what will be committed)
../.ICEauthority
../.Xauthority
../.bash_history
../.bash_logout
../.bashrc
../.cache/
../.config/
../.dmrc
../.gitconfig
../.local/
../.mozilla/
../.profile
../.sudo_as_admin_successful
../.xsession-errors
../.xsession-errors.old
../examples.desktop
../git-2.12.0.tar.gz
../git-2.12.0/
nothing added to commit but untracked files present (use "git add" to track)
5、如果修改的文件都是已经添加到版本库中文件时,可以使用-a 参数省略 git add命令,直接提交:
git commit -am "add distributed" #就不需要再提前add readme.txt了。
git还原本地文件:
第一种:要修改的文件已经添加到暂存区:
git reset head [filepath] #先把文件恢复到未跟踪状态(单个文件)
git reset head . #先把文件恢复到未跟踪状态(所有文件)
git checkout -- [filepath] #撤销文件修改(单个文件)
git checkout . #撤销文件修改(所有文件)
第二种:要修改的文件未添加到暂存区:
git checkout -- file_path #文件处于untracked状态,直接撤销修改就可
第三种:需要将文件回退到之前的某个版本,而不是简单的丢弃修改
git log <fileName> #得到该文件的commit 历史
#复制想回退的版本版本hash
git checkout <hash> <filename> #执行回退
#正常提交、推送
其他常见命令
git clone 项目地址 #拉项目
git pull #拉代码
git push #提交到仓库
git init #指令初始化一个git仓库
git add . #添加文件
git commit -m "注释"#提交至仓库。
git remote add origin https://git.oschina.net/你的用户名/项目名. #设置远端地址
git push origin master #即可完成推送
git checkout master #切换到master分支
压缩&解压缩
压缩
tar -vczf fileName.tar.gz fileName
解压缩
tar -vxzf fileName.tar.gz
移动和复制文件夹(文件)到另一个文件夹
- 移动一个文件夹到另一个文件夹下
mv 源文件夹路径 目标文件夹路径 #源文件夹下不能有文件夹或文件
- 复制一个文件夹到另一个文件夹下
cp -r 源文件夹路径 目标文件夹路径 #源文件夹下可以有文件夹或文件
-r 是递归的意思,删除文件时,也可以添加