关于远程服务git的搭建以及本地第一次向远程仓库推送:
http://blog.csdn.net/qq_20565303/article/details/77624680
1,创建本地仓库,以及获取远程仓库资源:
与远程仓库建立链接就不说了,在上面的链接中,里面涉及了怎么和远程仓库建立链接。
首先在自己创建的workspace获取其他文件夹里面执行一下操作:
$ git init
Initialized empty Git repository in E:/ideaworkspace-myplan/.git/
$ git clone git@117.48.200.4:/opt/git/myplan.git/
Cloning into 'myplan'...
git@117.48.200.4's password: //远程用户git的密码
remote: Counting objects: 38, done.
remote: Compressing objects: 100% (27/27), done.
remote: Total 38 (delta 1), reused 0 (delta 0)
Receiving objects: 100% (38/38), 10.94 KiB | 279.00 KiB/s, done.
Resolving deltas: 100% (1/1), done.
2、提交代码步骤:
当前仓库状态(什么文件被修改没有提交的,涉及到已经git add之类的资源):
git status
对比下修改内容:
git diff
添加修改文件等待提交
git add src/
查看当前仓库状态,包括要提交的文件
git status
提交修改文件
git commit -m "add mgt"
git status
git push origin master
3、版本控制历史记录:
git log --pretty=oneline
4、回退版本:
git reset --hard HEAD^
Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,
也就是最新的提交3628164...882e1e0(注意我的提交ID和你的肯定不一样),
上一个版本就是HEAD^,上上一个版本就是HEAD^^,
当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100
假如回退了,使用git log 将看不到最新的版本,如果又要指定到前面的最新版本,则:
1)只要上面的命令行窗口还没有被关掉,你就可以顺着往上找啊找啊,找到那个append GPL的commit id是3628164...,于是就可以指定回到未来的某个版本:
git reset --hard 3628164
版本号不用写完,属于模糊查询,尽量多写
2)当你用$ git reset --hard HEAD^回退到add distributed版本时,再想恢复到append GPL,就必须找到append GPL的commit id。
Git提供了一个命令git reflog用来记录你的每一次命令:
$ git reflog
ea34578 HEAD@{0}: reset: moving to HEAD^
3628164 HEAD@{1}: commit: append GPL
ea34578 HEAD@{2}: commit: add distributed
cb926e7 HEAD@{3}: commit (initial): wrote a readme file
5、本地版本库说明(两部分):
在执行git init的目录中间,只要包含.git目录和其他目录(工作区):
1)隐藏目录(.git)
这个是Git的版本库,版本库中间最重要的两部分为:暂存区(stage)、第一个分支(master)
2)工作区
6、关于修改后进行git add后再修改问题:
首先修改文件,使用git add后,没有git commit
然后第二次修改,直接git commit,此时,只会提交第一次修改的,第二次修改的还在工作区,暂存区(stage)没有内容,第一次的已经提交到master分支
接着使用git diff,发现文件存在差异,然后再git add,git commit,会将第二次的修改提交到master分支,
7、撤销修改:
1)git checkout -- readme.txt
这里撤销的两种情况(只能撤销工作区):
一种是已经没有暂存区,可以撤销到和版本库一模一样
一种是已经放到了暂存区,然后又做了修改,然后可以撤销到和暂存区一模一样
2)git reset HEAD readme.txt
这里的撤销是指将暂存区的内容重新放回工作区,使用这个命令后暂存区是干净的,工作区有修改
8、删除文件:
1)首先是在工作区使用命令git rm test.txt删除文件,然后git status发现文件差异,然后直接使用git commit
git rm test.txt
git commit -m "remove test.txt"
2)如果是工作区误删时,相当于修改,此时需要使用git checkout -- test.txt,可以将误删版本更新到工作区
git checkout -- test.txt