Git命令

将本地工程push到远程

方式一:

  1. 建立本地仓库

    git init
    
  2. 创建远程仓库:在github或者gitlab创建远程仓库

  3. 让本地仓库和远程仓库进行关联

    git remote add origin git@mycode.skylettestudio.com:xlPay/XLPay.git
    
  4. 进行添加和提交操作

    git add .
    git commit -m"添加文件"
    
  5. push到远程

    git push -u origin master
    

    由于远程库是空的,第一次推送master分支时,加上-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令,如下:

    git push origin master
    

方式二:

  1. 创建远程仓库

  2. 把远程仓库clone到本地

    git clone git@mycode.skylettestudio.com:xlPay/XLPay.git
    
  3. 将本地工程copy到clone的文件夹中
  4. 进行添加和提交操作

    git add -A
    git commit -m"添加文件"
    
  5. 将工程push到远程

    git push origin master
    

Add操作

  • 添加单个改动文件,如:readme.txt

    git add readme.txt

  • 添加所有改变的文件,有如下几种区别:

    //表示添加所有内容

    git add -A

    //表示添加新文件和编辑过的文件不包括删除的文件

    git add .

    //表示添加编辑或者删除的文件,不包括新添加的文件

    git add -u

  • 添加同时提交内容

    git commit -am”添加并提交到仓库”


分支操作

  • 查看分支

    git branch
    
  • 创建分支

    git branch <name>
    
  • 切换分支

    git checkout <name>
    
  • 创建+切换分支

    git checkout -b <name>
    
  • 合并某分支到当前分支

    git merge <name>
    
  • 删除本地分支

    git branch -d <name>
    
  • 查看远程分支列表

    git branch -a
    
    绿色代表当前项目所在的分支,红色就是远程分支列表
    
  • 提交该分支到远程仓库(即:在远程创建dev分支,并提交内容):

    git push origin dev
    
  • 从远程获取dev分支内容:

    git pull origin dev
    

    或者通过用命令行,运行 git fetch,可以将远程分支信息获取到本地, 
    再运行 git checkout -b local-branchname origin/remote_branchname 
    就可以将远程分支映射到本地命名为local-branchname 的一分支

  • 删除远程分支

    git push origin --delete <branchName>
    
  • 重命名本地分支

    git branch -m <oldbranch> <newbranch>
    
  • 重命名远程分支

    先删除远程分支,然后重命名本地分支,再重新提交一个远程分支
    

版本回退

在Git中,用HEAD表示当前版本。上一个版本就是HEAD^,上上一个版本就是HEAD^^。,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。

  • 查看提交日志(所有的提交日志,最近到最远)

    git log
    
  • 查看提交的内容(比如更改了哪些类,删除了哪些文件等)

    git log -p -1// -p 选项展开显示每次提交的内容差异,用 -2 则仅显示最近的两次更新
    
  • 查看命令历史(即:我们每一个命令)

    git reflog
    
  • 通过git log 或者 git reflog可以拿到每个版本的commit_id,然后通过切换版本/回退版本的命令即可:

    git reset --hard commit_id
    
  • 回退版本操作:

    //git log 拿到commit_id
    git log
    //回到commit_id那个版本
    git reset --hard commit_id
    
  • 已经回退到了之前的版本,又想回到新版本

    //查看所有的命令,然后找到新版本提交的 commit_id
    git reflog
    //去到新版本 
    git reset --hard commit_id
    
  • 让这个文件回到最近一次git commit或git add时的状态

    git checkout -- readme.txt
    

标签管理

  • 打一个新标签

    //默认标签是打在最新提交的commit上的
    git tag <name>
    
  • 查看所有标签(标签不是按时间顺序列出,而是按字母排序的)

    git tag
    
  • 查看某个标签信息

    //标签不是按时间顺序列出,而是按字母排序的
    git show <tagname>
    
  • 创建带有说明的标签,用-a指定标签名,-m指定说明文字

    git tag -a v0.1 -m "设置了标签啊" 3628164
    
  • 删除本地标签

    git tag -d v0.1
    
  • 推送一个本地标签到远程

    git push origin <tagname>
    
  • 推送全部未推送过的本地标签到远程

    git push origin --tags
    
  • 删除一个远程标签

    //先在本地进行删除
    git push origin :refs/tags/<tagname>
    
  • tag默认是打在最新的commit上的,如果想给已经commit过的内容添加标签如下:

    1. git reflog //找到历史版本的 commit id = 6224937
    2. git tag v1.0.0 6224937
    
  • 获取远程tag

    git fetch origin tag <tagname>
    

解决冲突

  • 合并冲突:

    //提交的文件如果出现冲突就会出现这种提示
    CONFLICT (content): Merge conflict in readme.txt
    
    Automatic merge failed; fix conflicts and then commit the result.
    
    1. 通过git status 查看冲突文件
    2. Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容
    3. 修改文件,保存,再次提交即可
    4. 通过git log查看分支合并的情况

更新本地工程

  • 获取远端库最新信息

    git fetch origin
    
  • 作比较

    git diff master origin/master
    
  • 合并本地仓库代码

    git merge origin/master

Updates were rejected because the tip of your current branch is behind 

是因为远程repository和我本地的repository冲突导致的,而我在创建版本库后,在github的版本库页面点击了创建README.md文件的按钮创建了说明文档,但是却没有pull到本地。这样就产生了版本冲突的问题。

push前先将远程repository修改pull下来
$ git pull origin master
$ git push -u origin master

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值