zoukankan      html  css  js  c++  java
  • git常用笔记

    这里就不做git的相关介绍跟安装了

      1创建版本库

    $ git init

    如何重新初始化  rm -rf .git

    注意: 不要把仓库建在中文目录下,可能出问题. .git是个隐藏目录,不要乱碰.(你的每一次代码修改它都帮你记录着呢)

      2添加文件

    $ git status  //查看更改状况

    git add //把文件提交到暂存区

    git add . :他会监控工作区的状态树,使用它会把工作时的所有变化提交到暂存区,包括文件内容修改(modified)以及新文件(new),但不包括被删除的文件。

    git add -u :他仅监控已经被add的文件(即tracked file),他会将被修改的文件提交到暂存区。add -u 不会提交新文件(untracked file)。(git add --update的缩写)

    git add -A :是上面两个功能的合集(git add --all的缩写)

    git commit -m "备注更改信息" //提交到版本库

      3把代码推到远程仓库

    先为本地库添加远程库 $ git remote add origin https://git.oschina.net/lianshou/test.git 意思是:添加1个远程库,代号是origin,地址是 https://....test.git

    再git push origin master 意思是,把本地的版本(默认是master),推到代号为origin的远程库去. 这个过程会让你输入用户名/密码,即你注册时的账户密码.

      4团队合作

    其他人怎么得到你提交的代码?

    git clone 代码地址 master

    你又如何得到仓库里别人提交的最新代码?

    git pull <远程主机名> <远程分支名>:<本地分支名>

    比如,要取回origin主机的next分支,与本地的master分支合并,需要写成下面这样 -git pull origin next:master

    如果远程分支(next)要与当前分支合并,则冒号后面的部分可以省略。上面命令可以简写为:git pull origin next

    如果想把本地的某个分支test提交到远程仓库,并作为远程仓库的master分支,或者作为另外一个名叫test的分支,那么可以这么做。

    你又如何推送代码到服务器?
    git push origin test:master         // 提交本地test分支作为远程的master分支 //好像只写这一句,远程的github就会自动创建一个test分支
    git push origin test:test              // 提交本地test分支作为远程的test分支
    如果想删除远程的分支呢?类似于上面,如果:左边的分支为空,那么将删除:右边的远程的分支。
    git push origin :test              // 刚提交到远程的test将被删除,但是本地还会保存的,不用担心

    git clone 与 git pull有什么区别?

    从远程服务器克隆一个一模一样的版本库到本地,复制的是整个版本库,叫做clone.(clone是将一个库复制到你的本地,是一个本地从无到有的过程),git pull相当于是从远程获取最新版本并merge(合并)到本地     git pull = git fetch + git merge,git fetch更安全一些
    git clone是远程操作的第一步,通常是从远程主机克隆一个版本库,eg:$ git clone ##   该命令会在本地主机生成一个目录,与远程主机的版本库同名,如果要是制定不同的目录名,可以将目录名作为git clone 命令的第二个参数
    从远程服务器获取到一个branch分支的更新到本地,并更新本地库,叫做pull.(pull是指同步一个在你本地有版本的库内容更新的部分到你的本地库),git pull 作用是,取回远程主机某个分支的更新,再与本地的指定分支合并。它的完整格式稍稍有点复杂。eg:$ git pull ##远程主机(origin) #远程分之(next)#:#本地分之(master)#
    如果远程分支是与当前分支合并,则冒号后面的部分可以省略。eg:$ git pull #远程主机(origin)#  #远程分之(next)# 相当于1. $ git fetch origin

      5版本切换

    git log 查看项目的日志,如果感觉log有点乱,可以git log --pretty=oneline,或者git log --oneline 让日志单行显示.按q退出

    git reflog查看所有历史版本id

    切换为head的前1版本,git reset --hard HEAD^

    切换为head的前2版本,git reset --hard HEAD^^

    切换为head的前100版本,git reset --hard HEAD~100

    如果想返回到最新的版本,可以使用命令git reset --hard commit_id来实现,,例$ git reset --hard 6207e59

    Git提供了一个命令git reflog,该命令按照之前经过的所有的commit路径按序来排列,用来记录你的每一次命令

      6分支处理

    查看所有分支 git branch

    查看所有远程分支 git branch -a

    拉取远程分支到本地 git checkout -b 本地分支名 remotes/origin/远程分支名

    切换到dev分支 git checkout dev创建dev分支 git branch dev

    创建并查看分组简写 git checkout -b

    合并分支到master:在分支提交版本库的前提下回到主分支 $ git merge 分知名

    合并某个commit到另一个分支:git log 查询版本历史,然后 git cherry-pick <commit id>

      7远程仓库

    添加远程库 命令:git remote add <远程库名> <远程库地址>

    注: 远程库名一般叫origin,但并非强制,你可以自己起名.

    修改远程库名称  git remote rename <旧名称> <新名称>

    查看远程仓库 查看远程仓库:git remote 查看仓库地址:git remote -v

    删除远程库 命令:git remote remove <远程库名>

      8公钥登陆

    我们push本地仓库到远程时,总要输入用户名/密码,这很不方便. 配置公钥,可以避免频繁输用户名/密码的麻烦.

    1. 配置ssh格式的远程仓库地址

    git remote add 远程仓库名 远程仓库地址 例: git remote add gitaddr git@git.oschina.net:lianshou/test.git

    2. 创建ssh key

    ssh-keygen -t rsa -C "youremail@example.com",把邮件地址换成你自己的邮件地址,一直回车,不用输入密码.完成后,可以在用户主目录里找 到.ssh目录,内有id_rsa和id_rsa.pub两个文件. id_rsa是私钥,id_rsa.pub是公钥. 这两把钥匙是成对的,可以让分别持有私钥和公钥的双方相互认识.

    3. 把公钥放在服务器

    用记事本打开id_rsa.pub,复制公钥内容. 登陆git.oschina.net,如下图,填入公钥并保存

  • 相关阅读:
    软件工程 speedsnail 第二次冲刺2
    软件工程 speedsnail 第二次冲刺1次
    软件工程 speedsnail 冲刺9
    软件工程 speedsnail 冲刺8
    软件工程 speedsnail 冲刺7
    软件工程 speedsnail 冲刺6
    软件工程 speedsnail 冲刺5
    软件工程 speedsnail 冲刺4
    软件工程 speedsnail 冲刺3
    软件工程 speedsnail 冲刺2
  • 原文地址:https://www.cnblogs.com/zwhbk/p/6855143.html
Copyright © 2011-2022 走看看