git操作规范_命令操作实现

git命令操作实现

  1. 设定本机用户名,绑定邮箱,让远程服务器知道机器的身份(在没有设置ssh之前)

    git config –global user.name “limengqin”
    git config –global user.email [email protected]

  2. 如果没有最新代码希望从头开始,则可以从服务器上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 //将本地的更改提交到远程服务器

  3. 如果你已经有了一个新版的代码,希望直接把本地的代码替换到远程服务器,

    进入代码所在的文件夹
    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下来

  1. 本地项目与远程服务器之间的交互

    git init //初始化
    git add . //将文件夹下的所有的文件添加到暂存区
    git commit -m ‘note’ //将暂存区中的文件保存成为某一个版本
    git push -u origin master //从本地push到主分支

  2. 其他命令

    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通过以下符号分割冲突的两部分

  1. 添加和配置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


这里写图片描述
  1. 版本穿梭

    版本回退
    在Git中,我们用git log命令查看:
    每一个提交的版本都唯一对应一个commit版本号,
    现在,我们要把当前版本回退到上一个版本,就可以使用git reset命令:
    git reset –hard HEAD^
    这个时候,最新的版本就被上一个版本覆盖了,继续用git log就找不到了。这个时候,如果想恢复到原来的版本,只要找>到原来的commit版本号就可以了。
    git reflog //查看命令历史,以便确定要回到哪个版本
    git reset –hard commit_id //比如git reset –hard 3628164(不用全部输入,输入前几位即可

  2. 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 checkout master    Switched to branch ‘master’    Your branch is ahead of ‘origin/master’ by 1 commit.    Git还会自动提示我们当前master分支比远程的master分支要超前1个提交。     在master分支上把123.txt文件的最后一行改为:     Creating a new branch is quick & simple. 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用<<<<<<<,=======,>>>>>>>标记出不同分支的内容,我们修改后保存再提交:
g i t a d d 123. t x t 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其余功能有待积累中如有意见,请直面提出不胜感激 = =!

猜你喜欢

转载自blog.csdn.net/Strugglein/article/details/79554653
今日推荐