git命令操作实现
设定本机用户名,绑定邮箱,让远程服务器知道机器的身份(在没有设置ssh之前)
git config –global user.name “limengqin”
git config –global user.email [email protected]如果没有最新代码希望从头开始,则可以从服务器上clone下来到本地,并操作后提交
git clone [email protected] //这里是项目的地址(可从项目主页复制),将远程服务器的内容完全复制过来
cd repository //clone 之后进入该项目的文件夹
touch 123.txt //新建123文件
git add 123.txt //将新的文件添加到git的暂存区
git commit-m ‘Its note:add a readme file’ // 将暂存区的文件提交到某一个版本保存下来,并加上注释
git push -u origin master //将本地的更改提交到远程服务器如果你已经有了一个新版的代码,希望直接把本地的代码替换到远程服务器,
进入代码所在的文件夹
git init //初始化
git remote add origin [email protected] //添加远程项目地址(可从项目主页复制)
git add . //添加该文件夹中所有的文件到git的暂存区
git commit -m ‘note’//提交所有代码到本机的版本库
git push -u origin master //将本地的更改提交到远程服务器
&git 中clone过来的时候,git不会对比本地和服务器的文件,也就不会有冲突,建议确定完全覆盖本地的时候用clone,不确定会不会有冲突的时候用git pull,将远程服务器的代码download下来
本地项目与远程服务器之间的交互
git init //初始化
git add . //将文件夹下的所有的文件添加到暂存区
git commit -m ‘note’ //将暂存区中的文件保存成为某一个版本
git push -u origin master //从本地push到主分支其他命令
git add . //将文件夹下的所有的文件添加到暂存区
git commit -m ‘note’ //将暂存区中的文件保存成为某一个版本
git log //查看所有的版本日志
git status //查看现在暂存区的状况
git diff //查看现在文件与上一个提交-commit版本的区别
git reset –hard HEAD^ //回到上一个版本
git reset –hard XXXXX //XXX为版本编号,回到某一个版本
git pull origin master //从主分支pull到本地
git push -u origin master //从本地push到主分支
git pull //pull默认主分支
git push //push默认主分支
如果出现了conflict,则需要按照提示更改冲突再提交方可。git通过以下符号分割冲突的两部分
- 添加和配置SSH公钥
在 Git Bash 命令行下生成
鼠标右键 -> Git Bash
ssh-keygen -t rsa -C “[email protected]”
生成后的公钥会存放在
C:/Users/You_User_Name/.ssh/id_rsa.pub
然后打开gitlab首页
然后将c:\user\用户下.ssh\id_rsa.pub的内容复制到key并add key
版本穿梭
版本回退
在Git中,我们用git log命令查看:
每一个提交的版本都唯一对应一个commit版本号,
现在,我们要把当前版本回退到上一个版本,就可以使用git reset命令:
git reset –hard HEAD^
这个时候,最新的版本就被上一个版本覆盖了,继续用git log就找不到了。这个时候,如果想恢复到原来的版本,只要找>到原来的commit版本号就可以了。
git reflog //查看命令历史,以便确定要回到哪个版本
git reset –hard commit_id //比如git reset –hard 3628164(不用全部输入,输入前几位即可5.2解决冲突
准备新的feature1分支,继续我们的新分支开发:
git checkout -b demo
修改readme.txt最后一行,改为:
Creating a new branch is quick AND simple.
在demo分支上提交:
git add readme.txt
git commit -m “AND simple”
切换到master分支:
git add readme.txt
$ git commit -m “& simple”
现在,master分支和feature1分支各自都分别有新的提交,变成了这样:
这种情况下,Git无法执行“快速合并”,只能试图把各自的修改合并起来,但这种合并就可能会有冲突,我们试试看:
$ git merge demo
Auto-merging readme.txt
CONFLICT (content): Merge conflict in readme.txt
Automatic merge failed; fix conflicts and then commit the result.
果然冲突了!Git告诉我们,123.txt文件存在冲突,必须手动解决冲突后再提交。git status也可以告诉我们冲突的文件;
我们可以直接查看123.txt的内容:
Git is a distributed version control system.
Git is free software distributed under the GPL.
Git has a mutable index called stage.
Git tracks changes of files.
<<<<<<< HEAD
Creating a new branch is quick & simple.
Creating a new branch is quick AND simple.
!>>>>>>>>
feature1
Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容,我们修改后保存再提交:
git commit -m “conflict fixed”
[master 59bc1cb] conflict fixed
最后,删除feature1分支:
$ git branch -d demo
Deleted branch feature1 (was 75a857c).
git查看,创建分支
1 查看远程分支
$ git branch -a
* br-2.1.2.2
master
remotes/origin/HEAD -> origin/master
remotes/origin/test
remotes/origin/test2
remotes/origin/test3
remotes/origin/master
2 查看本地分支
$ git branch
* test1
master
3 创建分支
$ git branch test
$ git branch
* test
master
test
下面是把分支推到远程分支
$ git push origin test
4 切换分支到test
Mr_z@DESKTOP-DGJVVS9 /e/test (master)
$ git branch
* master
test1
Mr_z@DESKTOP-DGJVVS9 /e/test (master)
$ git checkout test
Mr_z@DESKTOP-DGJVVS9 /e/test (test)
$ git branch
test2
master
* test
M 表示cong 原来分支(上一次修改没有提交test)带过来的修改
5 删除本地分支 git branch -d xxxxx
Mr_z@DESKTOP-DGJVVS9 /e/test (test)
$ git checkout test2
M xxx/123.java
M xxx/234.java
Switched to branch 'test'
Mr_z@DESKTOP-DGJVVS9 /e/test (test2)
$ git br
* test2
master
test
Mr_z@DESKTOP-DGJVVS9 /e/test (test2)
$ git br -d test
Deleted branch test (was 17d28d9).
Mr_z@DESKTOP-DGJVVS9 /e/test (test2)
$ git br
*test2
master
6 查看本地和远程分支 -a。前面带*号的代表你当前工作目录所处的分支
remotes/origin/HEAD -> origin/master #啥意思呢?
”在clone完成之后,Git 会自动为你将此远程仓库命名为origin(origin只相当于一个别名,运行git remote
–v或者查看.git/config可以看到origin的含义),并下载其中所有的数据,建立一个指向它的master
分支的指针,我们用(远程仓库名)/(分支名) 这样的形式表示远程分支,所以origin/master指向的是一个remote
branch(从那个branch我们clone数据到本地)“
这个是执行 git remote -v 的结果,看出来origin其实就是远程的git地址的一个别名。
$ git remote -v
origin git@xxxx/123.git (fetch)
origin git@xxxx/123.git (push)
Mr_z@DESKTOP-DGJVVS9 /e/test (test)
$ git branch -a
master
* test
remotes/origin/HEAD -> origin/master
remotes/origin/test1
remotes/origin/test2
remotes/origin/test3
remotes/origin/master
7 删除远程版本
git push origin :test1
删除远程分支
git branch -r -d origin/branch-name
git push origin :branch-name
git删除文件夹/文件(不删除本地文件)
删除缓冲区里的文件,再提交给服务器端。
1.首先进入要删除的文件夹或文件的根目录下
2.执行下面的语句”.idea”是相对于本地根目录下的文件夹/文件路径
git rm -r --cached .idea
git commit -m 'Remove .idea'
git push origin dev
另外git pull --rebase origin master
:把github上最新的文件下载下来
此版本为v1.0其余功能有待积累中如有意见,请直面提出不胜感激 = =!