精华内容
下载资源
问答
  • 1.获取Git仓库 1.1. 在现有目录下初始化仓库 在Git Bash中进入工作目录或者直接在工作目录右击,选择Git Bash Here打开Git命令行; 使用命令初始化仓库: git init 本地仓库初始化成功后,Git会在当前目录新建...

    1.获取Git仓库

    1.1. 在现有目录下初始化仓库

    • 在Git Bash中进入工作目录或者直接在工作目录右击,选择Git Bash Here打开Git命令行
    • 使用命令初始化仓库:
    git init
    

    • 本地仓库初始化成功后,Git会在当前目录新建一个.git的隐藏文件夹,该文件夹中包含了初始化的Git仓库中所有的必须文件,具体在后续详细讲解:

    1.2.克隆现有的仓库

    克隆远程仓库的命令格式是:

    git clone <url>
    

    如果想在克隆的时候自定义仓库的名字,格式如下:

    git clone <url> <new repository name>
    

    2.提交更新到仓库(重点)

    在当前工作目录下,Git对一个文件的状态有两种:

    • 已跟踪:在上一次提交的快照中有记录,已被纳入版本管理(获取仓库时,工作目录下所有的文件都是已跟踪文件);
    • 未跟踪:除已跟踪文件之外的所有文件都属于未跟踪文件。

    2.1.查看文件当前状态

    查看工作目录下所有文件的状态命令:

    git status
    

    当文件数量多时可以使用-s参数输出简短信息:

    git status -s
    
    格式说明
    左边的M文件被修改,并且已放入暂存区
    右边的M文件被修改,未放入暂存区
    MM在工作区被修改后提交到暂存区,在工作区又被修改了
    A新添加到暂存区的文件
    ??新添加的未跟踪的文件

    2.2.跟踪新文件

    git add <文件名或者目录>
    
    • 文件名支持通配符*(比如*.c表示工作区所有c文件);
    • 如果是目录,则递归跟踪该目录下所有文件

    使用-A参数表示跟踪所有文件:

    git add -A
    

    2.3.修改当前文件

    使用vim打开test.c并编辑如下代码:

    #include <stdio.h>
    
    int main(void)
    {
        printf("Hello World.\n");
        return 0;
    }
    

    2.4.暂存已修改文件

    已跟踪文件修改后查看状态,会提示Changes not staged for commit,这表明文件修改后没有保存到暂存区,使用如下命令将修改保存到暂存区:

    git add <文件名>
    

    使用-A参数表示暂存所有已修改文件:

    git add -A
    

    2.5.查看未暂存和已暂存的修改

    在工作区工作的时候,我们想要知道:

    • 当前做的哪些更新没有暂存?
    • 有哪些更新已经暂存起来准备下次提交?

    使用git status命令只能表明文件,要查看具体内容使用该命令:

    git diff
    

    该命令比较工作目录中和暂存区文件的差异,即:已经修改但还未暂存的内容最后通过文件补丁的格式表明具体哪些行发生了变化

    如图,在test.c文件中添加一行代码:

    然后分别使用git statusgit diff查看:

    如果需要查看已经暂存起来的修改使用如下命令:

    git diff --staged
    

    2.6.提交更新

    注:提交操作前请确保已设置用户名和邮箱

    使用如下命令将暂存区的内容提交到仓库:

    git commit
    

    该命令只会将暂存区的内容提交到仓库,所以在提交之前需要使用git status查看,确认所有改变已经暂存

    该命令执行后会自动调用默认编辑器vim来编辑提交信息,之后保存即可成功提交。

    如果提交信息比较简单,可以直接一行搞定:

    git commit -m "<提交信息>"
    


    每次提交都是对该项目的一个快照,在以后的任何时候都可以回退到该次状态。

    2.7.跳过暂存区域直接提交更新

    先将工作区的内容提交到暂存区,然后将暂存区的内容提交到仓库,这样的过程未免过于繁琐,使用如下命令可以跳过暂存区,直接将工作区修改的文件(未追踪的文件不能直接提交)添加到仓库:

    git commit -a -m "<提交信息>"
    


    2.8.忽略文件

    一般情况下,我们总会有些文件不需要纳入Git 的管理,比如:

    • 编译生成的中间文件、临时文件、可执行文件等等;
    • 日志文件
    • ……

    解决方法:在工作目录下创建一个名为.gitignore的文件来列出忽略文件的模式。

    文件.gitignore的格式规范如下:

    • 所有空行或者以#开头的行会被Git忽略;
    • 可以使用标准的glob模式匹配;
    • 匹配模式可以以(/)开头防止递归;
    • 匹配模式可以以(/)结尾指定目录;
    • 要忽略指定模式以外的文件或目录,可以在模式前加(!)表示取反;

    在这里我们编辑一个.gitignore文件作为示例:


    然后编译产生中间文件和可执行文件:

    查看Git对当前文件的状态:

    2.9.移除文件

    要从Git的暂存区和仓库中移除一个文件,有两种情况:

    • 从暂存区删除,并且从工作目录删除源文件:
    git rm <文件名>
    
    • 从暂存区删除,保留工作区的源文件:
    git rm --cached <文件名>
    

    展开全文
  • 本地git存储库获取当前分支。 请考虑关注该项目的作者 ,并考虑为该项目以显示您的 :red_heart_selector: 和支持。 安装 使用安装: $ npm install --save git-branch 用法 const branch = require ( 'git-...
  • Git版本控制:Git本地仓库

    千次阅读 2015-03-24 11:38:54
    http://blog.csdn.net/pipisorry/article/details/44588351本地库创建总结$ git config --global user.name "***"$ git config --global user.email "***@126.com"在本地的某个要使用git版本控制的目录下git init...

    http://blog.csdn.net/pipisorry/article/details/44588351

    本地库创建总结

    全局设置:$ git config --global user.name "***"

    $ git config --global user.email "***@126.com"

    在本地的某个要使用git版本控制的目录下
    git init
    添加exclude
    git add .
    git commit -m "first commit"

    [pygit:500行Python代码实现的Git客户端]

    Git的安装

    linux下安装git

    ubuntu 14.04中安装最新版git

    $sudo add-apt-repository ppa:git-core/ppa        #添加最新源,不然总是安装git 1.9.1

    $sudo apt-get update    #添加更新源后记得update一下,否则添加后也没用

    $sudo apt-get install git    #安装最新版的git

    windows下安装git

    Windows下要使用很多Linux/Unix的工具时,需要Cygwin这样的模拟环境,Git也一样。Cygwin的安装和配置都比较复杂,就不建议你折腾了。不过,有高人已经把模拟环境和Git都打包好了,名叫msysgit,只需要下载一个单独的exe安装程序。

    msysgit是Windows版的Git,从Redirecting Git for Windows' homepage...下载,然后按默认选项安装即可。

    安装完成后,在开始菜单里找到“Git”->“Git Bash”!

    Note: windows下安装git后,如果将安装目录D:\Git\bin加入到path路径中,这样就可以在cmd(而不是git命令行mingw32)中使用linux命令如ls了。

    快速启动Git并自动切换到指定的文文件夹:命令行工具Git Bash还集成到了Windows的资源管理器中,在文件夹上右键,可以点击Git Bash HereGit GUI Here快速启动Git并自动切换到指定的文件夹。

    设置git的user name和email

    配置命令

    $ git config --global user.name "***"

    $ git config --global user.email "***@126.com"

    因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址。(注册过的)

    注意git config命令的--global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。

    查看git配置

    git config --list

    皮皮Blog

    创建版本库-初始化git代码库

    通过git init命令把某个目录(比如我的是E:\mine\pythonworkspace)变成Git可以管理的仓库

    GitBash中输入:

    $ cd 'E:\mine\pythonworkspace'

    $ git init

    当前目录下多了一个.git的目录,这个目录是Git来跟踪管理版本库的

    Note:git很干净:git不会像svn一样在每个目录下面都建立一个.svn目录,而只是在代码根目录下建立一个.git目录。所以相应的,当你执行git status的时候,显示出来的是整个工程的代码修改,而不是像svn一样显示当前目录下的修改。git只建立一个.git目录的好处是,除了根目录下你需要注意这里比原先多了一个文件夹外,你可以很放心地认为“代码就像它看起来的那样”,你把它copy到任意一个地方都可以。而svn则不行,svn的代码目录是不能够拷贝到其他svn代码库中的,因为svn的索引会冲突。

    忽略指定文件

    git提交代码文件时怎么过滤掉某个文件夹,不提交Git工作目录中某些文件。在git add文件之前,有些文件(比如数据文件,>100m就不能push到远程;比如.pyc文件;比如编译过程中生成的 .o 文件)是我们并不想加入也无需被添加到 Git 管理中,同时也不希望他出现在未跟踪列表中。

    .gitignore 文件

    lz提示一点,相当重要:.gitignore 文件只能作用于 Untracked Files,也就是那些从来没有被 Git 记录过的文件(自添加以后,从未 add 及 commit 过的文件)。.gitignore文件只是ignore没有被staged(cached)文件,对于已经被staged文件,加入ignore文件时一定要先从staged移除。

    配置语法
    1)以“/”开头表示目录;
    2)以“?”通配单个字符
    3)以“*”通配多个字符;
    4)以方括号“[]”包含单个字符的匹配列表;
    5)以叹号“!”跟踪某个文件或目录;指出例外的情况,不忽略,如!main.pyc。

    1. 全局设置
        通过修改全局配置 gitconfig 中的  excludesfile 指定全局忽略文件。设置方法:
    $ git config --global core.excludesfile ~/.gitignore
        修改~/.gitignore 这个文件将作用于所有 git 项目,并且作用于项目实例中的所有被跟踪的目录。比如说我们可以在该文件中添加*.o 来忽略所有 .o 文件。
    2. 局部设置

    只作用于当前目录(也就是.git目录的父目录)下,在 .gitignore 文件中添加 *.o 会忽略所有目录下产生的.o 文件,但在当前目录下的 .gitignore 中添加 *.o 却只能忽略当前目录下的 .o 文件。

    Note:屏蔽某个目录下的某个文件,指定忽略路径时,路径是没有相对路径的,git管理下的所有文件都会进行搜索。

    .git/info/exclude

     git 还提供了另一种 exclude 的方式来做同样的事情,不同的是 .gitignore 这个文件本身会提交到版本库中去。用来保存的是公共的需要排除的文件。而 .git/info/exclude 这里设置的则是你自己本地需要排除的文件, 他不会影响到其他人。也不会提交到版本库中去。工程目录下找到.git/info/exclude,把要排除的文件写进去。

    .gitignore文件

    在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件。

    Note: 如果使用Windows,windows下貌似不能创建.gitignore这个文件,如果你在资源管理器里新建一个.gitignore文件,提示你必须输入文件名,但是在文本编辑器里“保存”或者“另存为”就可以把文件保存为.gitignore了。lz发现还可以这样做:打开git,cd到.git文件夹下,输入命令touch .gitignore就可以创建成功了。

    .gitignore(或者.git/info/exclude)示例

    不需要从头写.gitignore文件,GitHub已经为我们准备了各种配置文件,只需要组合一下就可以使用了。所有配置文件可以直接在线浏览:https://github.com/github/gitignore.

    # git ls-files --others --exclude-from=.git/info/exclude
    # Lines that start with '#' are comments.
    # For a project mostly in C, the following would be a good set of
    # exclude patterns (uncomment them if you want to use them):
    # *.[oa]
    # *~

    #not for stage (never add)
    .idea/
    *.mtx
    *.bak
    *~

    # Byte-compiled / optimized / DLL files
    __pycache__/
    *.py[cod]
    *.npy

    # C extensions
    *.so
    Debug/
    ipch/

    # Distribution / packaging
    .Python
    env/
    build/*
    develop-eggs/
    dist/
    downloads/
    eggs/
    .eggs/
    lib/
    lib64/
    parts/
    sdist/
    var/
    *.egg-info/
    .installed.cfg
    *.egg

    # PyInstaller
    # Usually these files are written by a python script from a template before PyInstaller builds the exe, so as to inject date/other infos into it.
    *.manifest
    *.spec

    # Installer logs
    pip-log.txt
    pip-delete-this-directory.txt

    # Unit LanguageAnalysis / coverage reports
    htmlcov/
    .tox/
    .coverage
    .coverage.*
    .cache
    nosetests.xml
    coverage.xml
    *,cover

    # Translations
    *.mo
    *.pot

    # Django stuff:
    *.log

    # Sphinx documentation
    docs/_build/

    # PyBuilder
    target/

    # Windows:
    Thumbs.db
    ehthumbs.db
    Desktop.ini

    #mac
    .DS_Store

    [https://github.com/pipilove/python_workspace/edit/master/.gitignore]

    [Ignoring files]

    [git 创建 .gitignore 文件过滤规则及注意事项]

    [Git 过滤文件,控制上传]

    [git-忽略指定文件]

    把文件添加到仓库

    1. $ git add readme.txt

    $git add --all .   #同时包含git add .和git rm 所有已经删除的文件

    Note:

    1. 如果不add到暂存区,那就不会加入到commit中。

    2.workspace中某个文件夹右键 >  git add all files now

    将文件从仓库删除unstage

    也就是将某个文件回到git add之前状态,相当于没有git add。

    use "git rm --cached <file>..." to unstage

    刚add的所有文件都unstage: git rm --cached -r .

    这样就可以将不想commit的文件加入ignore中再git add。

    删除文件

    如果是你删除了某个文件如1.txt,怎么才能提交这种修改:

    方法1.现在的git2.0版本使用git add 1.txt不行,可以用git rm 1.txt 将删除动作提交到stage中。直接使用git add 1.txt会提示错误:Changes not staged for commit: (use "git add/rm <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) deletee: 1.txt。从提示中看出del操作没有被staged。关于stage参考下面的[工作区和暂存区]部分。当然也可以直接用git add --all .啦。

    方法2. 直接删除一个文件,但是之后要用git commit -a -m 'update'来提交,才能提交删除的文件到远程和本地库中,与git1.0不同。(现在好像也不用加-a了)

    其它删除文件相关的内容[Git版本控制教程 - Git查阅、撤销修改和版本回退:git删除和恢复删除的文件]

    git status命令查看结果

    绿色是已经add到暂存区stage中的(右键add进去的), 红色是在工作区workspace还没add到stage中的

    git diff

    查看difference

    [Git版本控制:Git高级教程]

    撤销git add .

    git reset HEAD . 也就是刚刚git add了文件,将其从暂存区删除,不add

    git reset HEAD DIR/* 只撤销DIR目录下的所有文件

    把文件提交到仓库

    $ git commit -m "wrote a readme file"

    Note:

    1. -m后面输入的是本次提交的说明,可以输入任意内容。如果说明中没有空格等分隔符,可以省略""号。

    2. 提交信息内容的建议:写明为什么,不要写做了什么. Anyone can see WHAT you did just by looking at the code. But the code can never tell someone WHY you did it.using the word “should” can help frame things.

    [Writing Great Git Commit Messages][Preemptive commit comments]

    commit可以一次提交很多文件,所以你可以多次add不同的文件。commit后暂存区中的都提交了。

    总结

    在本地创建repository版本管理的步骤如下

    git init
    git add README.md
    git commit -m "first commit"
    git add README.md
    git commit -m "first commit"

    Note:在github上创建完成repository后就是这个提示。

    皮皮Blog

    工作区和暂存区

    工作区(Working Directory):就是你在电脑里能看到的目录,比如E:\mine\pythonworkspace文件夹。也叫Working tree?

    版本库Repository:工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。

    Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD

    把文件往Git版本库里添加的时候,是分两步执行的

    第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区(stage);

    第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支(master)。(但个人理解commit后应该并没有清空stage,因为可以使用git rm --cached来将commit的大文件从stage中删除)

    git add两个文件后,暂存区的状态就变成这样了:

    所以,git add命令实际上就是把要提交的所有修改放到暂存区(Stage),然后,执行git commit就可以一次性把暂存区的所有修改提交到分支。一旦提交后,如果你又没有对工作区做任何修改,那么工作区就是“干净”的。现在版本库变成了这样,暂存区就没有任何内容了:

    git中代码的三种状态:unstaged, staged 和 committed

    unstaged表示该代码尚未开发完成,staged表示代码开发完成了,准备提交但是尚未提交,committed自然就是提交过的了。

    让代码从unstaged变成staged,要通过命令git add <files>git rm <files>

    让代码从staged变成committed,自然要使用命令git commit

    Note:  Untracked Files,也就是那些从来没有被 Git 记录过的文件(自添加以后,从未 add 及 commit 过的文件)或者是加入到ignore文件中去的那些?

    [http://nvie.com/posts/a-successful-git-branching-model/]

    皮皮Blog

    自定义Git

    在安装Git中,我们已经配置了user.nameuser.email,实际上,Git还有很多可配置项。

    让Git显示颜色

    $ git config --global color.ui true

    这样,Git会适当地显示不同的颜色,比如git status命令,文件名就会标上颜色。

    配置别名

    $ git config --global alias.st status
    $ git config --global alias.co checkout
    $ git config --global alias.ci commit
    $ git config --global alias.br branch
    

    以后提交就可以简写成:

    $ git ci -m "bala bala bala..."
    

    --global参数是全局参数,也就是这些命令在这台电脑的所有Git仓库下都有用。

    撤销修改中,我们知道,命令git reset HEAD file可以把暂存区的修改撤销掉(unstage),重新放回工作区。既然是一个unstage操作,就可以配置一个unstage别名:

    $ git config --global alias.unstage 'reset HEAD'
    

    当你敲入命令:

    $ git unstage test.py
    

    实际上Git执行的是:

    $ git reset HEAD test.py
    

    配置一个git last,让其显示最后一次提交信息:

    $ git config --global alias.last 'log -1'
    

    这样,用git last就能显示最近一次的提交:

    $ git last
    commit adca45d317e6d8a4b23f9811c3d7b7f0f180bfe2
    Merge: bd6ae48 291bea8
    Author: Michael Liao <askxuefeng@gmail.com>
    Date:   Thu Aug 22 22:49:22 2013 +0800
    
        merge & fix hello.py
    

    甚至还有人丧心病狂地把lg配置成了:

    git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
    

    配置文件

    配置Git的时候,加上--global是针对当前用户起作用的,如果不加,那只针对当前的仓库起作用。

    每个仓库的Git配置文件都放在.git/config文件中:

    $ cat .git/config 
    [core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
        ignorecase = true
        precomposeunicode = true
    [remote "origin"]
        url = git@github.com:michaelliao/learngit.git
        fetch = +refs/heads/*:refs/remotes/origin/*
    [branch "master"]
        remote = origin
        merge = refs/heads/master
    [alias]
        last = log -1
    

    别名就在[alias]后面,要删除别名,直接把对应的行删掉即可。

    当前用户的Git配置文件放在用户主目录下的一个隐藏文件.gitconfig中:

    $ cat .gitconfig
    [alias]
        co = checkout
        ci = commit
        br = branch
        st = status
    [user]
        name = Your Name
        email = your@email.com
    

    配置别名也可以直接修改这个文件,如果改错了,可以删掉文件重新通过命令配置。

    设置git启动时的默认工作目录

    windows下找到git安装目录下 e.g. D:\Git\etc\profile文件,在最前面加上默认工作目录,如:

    cd E:/mine/python_workspace

    Git自动补全

    lz提示一下,windows下是自带有的,哈哈。

    在Unix系统下,运行以下指令来获取脚本:

    cd ~
    curl https://raw.github.com/git/git/master/contrib/completion/git-completion.bash -o ~/.git-completion.bash
    然后,在您的~/.bash_profile文件中添加以下代码:
    if [ -f ~/.git-completion.bash ]; then
        . ~/.git-completion.bash
    fi
    尽管我之前就提到过,在这里我仍要不厌其烦的说:如果你想使用Git提供的全部功能,你肯定是需要转而使用命令行来操作的。

    from:Git版本控制:Git本地仓库_皮皮blog-CSDN博客_git 本地版本控制

    ref:git Documentation

    git book*

    git command Reference*

    git(1) Manual Page

    Git学习笔记

    Home - 廖雪峰的官方网站

    GitHub Professional Services | From idea to implementation, our experts are ready to help your team get wherever you want to go. Start a conversation with us about how we can bring your goals to life.

    git入门经典

    Git-Tutorial-ebook+github+tutorial

    git - 简明指南

    Git 10 周年访谈:Linus 讲述背后故事 - 推荐阅读

    git 问题

    版本控制工具(CVS、SVN、GIT)简介

    探索.git目录了解Git的真相

    展开全文
  • IDEA 提交项目至Git与获取Git项目

    千次阅读 2019-07-08 11:32:29
    1.IDEA提交项目至git 注:保证已安装Git分布式管理系统,没有自行百度安装git 1)在IDEA中配置Git与GitHub Git:File-->Settings--> Version Control-->Path to Git executable:git安装路径 (IDEA会...

    1.IDEA提交项目至git

    注:保证已安装Git分布式管理系统,没有自行百度安装git

    1)在IDEA中配置Git与GitHub

    Git:File-->Settings --> Version Control --> Path to Git executable:git安装路径

    (IDEA会自动定位,idea好像已集成Git,如果没有,自行百度安装git)

    ),其他配置选项默认即可 --> 点击Test测试,成功后确认

    GitHub:

    Host:github.com 

    Auth Type:选择Password

    然后填写自己之前注册的github帐号与密码  Test成功后   Apply 然后OK 如:

    ææ¯å享å¾ç

    2)建立远程Git仓库

    在github建立一个仓库:Start a project-->输入 Repository name-->Create repository

    找到你建立的仓库,复制HTTPS或者SSH ,即URL地址

    技术分享图片

     

    3)建立本地项目的Git仓库

    打开打算提交到Git的项目

    在IDEA顶部的菜单栏中找到VCS

    VCS --> Import into Version Control --> Create Git Repository --> 选择要存放的路径(可以直接该项目下的路径) --> 点击OK

    4)提交项目至本地Git仓库与托管到远程仓库

    VCS-->Git->Add 

    4.1)idea git提交项目,忽略文件或文件夹设置

    File —- Settings —- Editor – File Types 
    在 lgnore files and folders 中添加 .idea 以及 *.iml 然后点击 OK 就可以了! 
    (PS:注意添加时加上分号)

    图片原创

     

    然后

    方式一:VCS-->Git-->Commit Directory-->在Commit Message 填写修改的信息-->commit and push

    方式二: VCS-->Commit Changes(提交修改)-->在Commit Message 填写修改的信息-->commit and push

    第一次提交托管,Push之前需要指定远程仓库的URL

    出现Push Commits框,点击Define remote ,提示输入URL(复制之前自己建立的远程仓库的地址)

    若弹出密码框,输入github密码,若无 直接push

     

     

    技术分享图片

     后续提交:

    VCS-->Git->Add 

    VCS-->Commit Changes

    或者VCS-->Git-->Push

    ps:每次修改项目,都要记得先Add一遍,再Commit

    idea中加入Git版本控制时 各文件颜色代表的意思:

    绿色:已经加入版本控制暂未提交; 
    红色:未加入版本控制; 
    蓝色:加入版本控制,已提交,有改动; 
    白色:加入版本控制,已提交,无改动; 
    灰色:版本控制已忽略文件。

     2.idea获取git/github上的项目

    获取别人的项目

    先点击右上角Fork:即建立一个新分支,复制一个副本到自己的Git仓库里,若直接Clone,则是克隆到自己的本地机器上,连接的远程仓库还是别人的,自己不是原作者,无法进行开发修改。只有Fork时,就把别人的项目克隆到自己的Git远程仓库上,然后再Clone到本地,此时本地连接的是自己的远程仓库,这样自己就有权限更新了。如下:点击Fork

    技术分享图片

     

    获取自己项目忽略上面步骤直接开始下面步骤:

    在想要获取的github项目上点击Clone or download  复制URL  如下:

    技术分享图片

    然后

    第一种方式:

    File-->new-->Project from Version Control-->git/github

     Git Repository URL(远程仓库git的地址) :粘贴刚才copy的URL,然后自定义项目本地存放路径  点击Test ,成功后 点击Clone 举例如下:

    技术分享图片

     

    第二种方式:idea顶部菜单栏找到VCS:

    VCS-->Checkout from Version Control-->github/git

    后续同上

     

     

    展开全文
  • Git本地版本管理

    千次阅读 2018-07-05 23:58:19
    Git 是一种分布式版本控制系统 (Distributed Version Control System DVCS) 。这种系统下,客户端不只是简单地拉取某个版本的文件,而是把整个记录文件版本的数据库(即整个代码仓库)都克隆到本地系统上。这样以来...

    一些基本概念

    分布式版本控制系统

    Git 是一种分布式版本控制系统 (Distributed Version Control System DVCS) 。这种系统下,客户端不只是简单地拉取某个版本的文件,而是把整个记录文件版本的数据库(即整个代码仓库)都克隆到本地系统上。这样以来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复。因为每一次的克隆工作,实际上都是一次对代码仓库的完整备份。

    这里写图片描述

    存储方式

    Git 中所有数据在存储前都会计算校验和,然后以校验和来引用某个版本的文件,该校验和是根据文件的内容或目录结构使用 SHA-1 哈希算法计算出来的,比如:

    24b9da6552252987aa493b52f8696cd6d3b00373

    Git 数据库中保存的信息都是以文件内容的哈希值来索引,而不是文件名。

    三种状态

    Git 最重要的地方是有三个区:

    • Git 仓库:这个就是保存各种文件版本的数据库,可以向这个数据库中拉取各个文件版本或把更新后的文件推入数据库进行记录。这是 Git 用来保存项目的元数据和对象数据库的地方,是 Git 最重要的部分,从其他计算机克隆仓库时,拷贝的就是这里的数据。已经推入到这个数据库中的文件对应的状态是 已提交 (commited)
    • 暂存区域:这个区域用来存储对当前已修改过并且作了版本标记的文件,在同一段时间内位于暂存区尚未提交的所有文件都属于同一个当前的版本,这些标记使得对应文件被包含在下次提交的快照中。这个区域是一个文件,保存了下次将提交的文件列表信息,一般位于 Git 仓库目录中。在这个区域的文件状态是 已暂存 (staged)
    • 工作目录:这个区域就是开发人员写代码的地方,对于已经修改并保存的文件,都会存储在这个区域,等待转移到暂存区并提交。它是对项目的某个版本独立提取出来的内容。那些从 Git 仓库的压缩数据库中提取出来的文件,就是放在这个区域所在的磁盘上供你使用或修改。在这个区域的文件状态是 已修改 (modified)

    这里写图片描述

    Git 工作三部曲

    1. 在工作目录修改文件;
    2. 将修改的文件对应的文件快照上传到暂存区。
    3. 提交更新,找到暂存区域的文件,将快照永久性存储到 Git 仓库目录。

    常用命令

    配置用户名和密码

    $ git config --global user.name "Jack Cheng"
    $ git config --global user.email "767833640@qq.com"

    如果使用了 --global 选项,则该命令只需要提交一次,无论你以后在系统中执行何种操作,Git 都会使用这种配置。如果你想针对某个特定的项目使用不同的用户名称和邮箱,可以在那个项目目录下运行没有 --global 选项的命令来配置。

    检查配置信息

    $ git config --list

    检查具体某一项的配置

    $ git config user.name

    获取帮助

    $ git help config
    $ git help push

    创建仓库

    $ git init

    这个命令将创建一个名为 .git 的子目录,这个字目录含有你初始化的 Git 仓库中所有的必须文件,这些文件是 Git 仓库的骨干。但是这只是做了一个初始化操作,在当地文件夹的项目里的文件还没有被跟踪。使用 git add 命令来跟踪文件,使用 git commit 命令来提交文件到本地的 Git 仓库中。

    检查状态

    $ git status

    可以查看当前仓库哪些文件处于未跟踪状态,哪些文件已经放入暂存区等待提交。

    这里写图片描述

    可以看到 .DS_Store 文件位于 Untracked files 标题下,表示这个文件是新创建的未被跟踪的文件,Git 仓库中不存在这个文件的信息。

    这里写图片描述

    可以看到这个时候 .gitignore 文件位于 Changes to be commited 这个标题下面,说明这个文件已经被移入暂存区了,处于已暂存的状态。

    把已修改或未跟踪的文件放入暂存区

    $ git add 文件名

    git add 不仅可以跟踪新文件并放到暂存区,还能把已修改的文件也放到暂存区,这是一个多功能命令。放到暂存区的这些文件在下次提交时将会一并提交到 Git 仓库中。因此对于 git add 命令的最好翻译是 “添加内容到下一次的提交中”。

    $ git add 文件目录

    此时 git add 命令将递归地跟踪该目录下的所有文件,并把目录下的所有文件都放入暂存区。

    查看已暂存的文件和当前工作目录中文件的差异

    $ git diff

    git diff 命令可以查看当前工作目录中已修改的文件和暂存区的文件的差异(注意只是和暂存区的差异,不是和上次提交以来的差异,因此如果你把所有已经修改的文件都添加到暂存区后,git diff 将不会返回任何东西)

    查看已暂存的文件和上一次提交后的文件的变化

    $ git diff --staged 或者
    $ git diff --cached

    提交处于暂存区的所有文件

    $ git commit -m "说明当前做了什么,以后版本回退时可以轻易找到"

    注意提交的都是放在暂存区的文件,每一次的提交的版本都会在历史记录中记录下来,以后都可以回到这个版本。(只有 commit 以后的版本可以回退)

    回到过去

    $ git log

    使用 git log 命令查看历史提交记录:

    这里写图片描述

    $ git log --pretty=oneline

    为了简化查看,可以使用 git log --pretty=oneline 参数:

    这里写图片描述

    $ git reset --hard commit_id 

    找到要回退的版本的前面的 commit_id,然后使用 git reset --hard commit_id 命令来回退到想要的版本,只需要打出 commit_id 的前几个字母即可,Git 会自动查找对应的 id

    这里写图片描述

    可以看到此时项目的最新版本已经回退到了 3950d 的版本。

    从过去回到现在

    $ git reflog

    回退以后,会发现之前的最新版本 9fd77 已经不在 git log 的目录中了,此时假如我们又想回到之前的最新的版本怎么办?首先使用 git reflog 命令来查找提交 9fd77 时的记录:

    这里写图片描述

    git reset --hard commit_id

    可以看到我们在回退前最新一次提交的 commit_id9fd77b1 ,因此我们再用 git reset --hard 9fd77b1 来进入到回退前的最新版本:

    这里写图片描述

    因此,我们也就从过去回到现在了。

    一些 trick

    忽略文件

    有时候我们会有一些文件不需要纳入 Git 的管理,比如上面的 .DS_Store ,此时就应该编写 .gitignore 文件来列出要 Git 仓库忽略的文件模式。该文件的格式规范如下:

    • # 开头的行为 Git 的注释。

    • 使用 / 放在文件名的开头可以防止递归地忽略所有非当前目录中的该文件。比如

      TODO

      会忽略 Git 仓库中所有目录下的 TODO 文件,但如果只希望 Git 忽略当前目录下的 TODO 文件,而不要忽略其它目录下的 TODO 文件,则应该写成这样:

      /TODO
    • 使用 / 放在文件名的末尾表明这个文件是一个目录,Git 将会忽略这个目录下的所有文件。

    • 如果希望 Git 只记录某一个特定的文件,而忽略除了这个文件以外的所有文件,可以在这个文件名前面使用 ! 取反。但是这种功能一般是用于以下情况:

      
      # 忽略所有的 .a 文件
      
      *.a
      
      
      # 但是所有的 lib.a 文件不能被忽略
      
      !lib.a
    • 指定文件的格式一般要使用正则表达式:

      • * 匹配 0 个或多个任意字符;
      • [abc] 可以匹配任何一个在方框号中的字符(在这个例子中是要么匹配一个a,要么匹配一个b,要么匹配一个c);
      • ? 只匹配一个任意字符;
      • [0-9] 表示匹配在 0 到 9 范围内的所有数字。
      • 使用两个星号 ** 表示匹配任意的中间目录,比如 learn/**/git 可以匹配 learn/gitlearn/no/git 或者 learn/no/python/git

    看一个 .gitignore 文件的例子:

    # 忽略所有以 .a 结尾的文件
    *.a
    
    # 不能忽略所有 lib.a 文件
    !lib.a
    
    # 仅仅忽略当前目录下的 TODO 文件
    /TODO
    
    # 忽略 build 目录下的所有文件
    build/
    
    # 仅仅忽略 doc 一个目录下的所有 .txt 文件
    doc/*.txt
    
    # 忽略 doc 目录下(包括子目录)的所有 .pdf 文件
    doc/**/*.pdf

    移除文件

    最常见的情况是,在 .gitignore 文件中未列出对应的文件,有时为了贪求效率,使用 git add . 把所有文件都放到暂存区域,包括把一些不希望加入 Git 版本管理的日志文件等也放进去了,这个时候我们希望可以从暂存区域中删除这些不希望被管理的文件,但是使这些文件仍然被存放在工作目录上,而不被 Git 继续跟踪。此时可以使用 git rm --cached filename 命令:

    这里写图片描述

    这样就可以把误添加的文件从暂存区中移除,而防止下一次 commit 时加入到 Git 仓库中去。

    还有一种情况就是,我希望删除的文件已经 commit 或者 add 了,即已经被跟踪了,但我希望完全删除这个文件,即把工作目录中的这个文件也删了,这时我们就可以先在本地项目目录中删除这个文件,然后再使用 git rm filename 命令把该文件从已跟踪的文件清单中一并删除:

    这里写图片描述

    这个是文件已经 add 但没有 commit 的情况,使用 git rm 命令就直接清空了,如果文件之前有过 commit ,而你又把想删除的文件从工作目录中删除了:

    这里写图片描述

    可以看到删除文件的操作记录在 Changes not staged for commit 标题下, 意味着你需要把这个删除的操作再提交一遍,使得 Git 仓库知道这个文件已经删除了,不应该再被跟踪了。

    移动文件

    如果要在 Git 中对某些文件进行重命名,可以使用 git mv original_name target_name 命令:

    这里写图片描述

    执行这个命令后,可以看到在工作目录中的 test.cpp 也被重命名为 main.cpp 了,这个时候只要提交这次重命名操作就可以了。

    参考资料

    1. Pro Git
    2. 廖雪峰 git 教程
    展开全文
  • Git 获取分支到本地

    千次阅读 2018-12-20 10:31:40
    原文:... 1》与远程仓库建立连接:git remote add origin XXXXX.git 2》使用git branch 查看本地是否具有dev分支 3》如果没有 git fetch origin dev 4》git checkout -b dev origin/dev...
  • Git本地仓库操作

    千次阅读 2018-05-06 08:40:56
    转自文章《git使用教程一 本地仓库操作》https://blog.csdn.net/yangwen123/article/details/8664342Git是什么?Git项目是Linus Torvalds在2005年的时候为了支持Linux kernel项目而开发的。Git是一个分布式的版本...
  • IDEA获取git项目

    千次阅读 2018-09-28 13:50:40
    新建文件夹,cd到该文件夹中,在该文件夹中打开git bash 1、从git服务器上clone项目 git clone ssh://git@...2、在xzq目录中增加文件夹,上传到本地库和远程 git add xzq/commons-spark/ 将新文件夹加入缓存区 ...
  • 本地新建目标空文件夹,在上一级启动Git GUI 连接远程仓库: git bash: git remote add origin https://github.com/wy0918/haitun.git git gui: remote-add Name: 自定义目标仓库名 Location:...
  • (入门级教程,通过玩转Git本地仓库,帮助新手快速入手Git)本文主要介绍git的分区及各个分区间如何进行交互,并简单阐述git的基本工作原理。——本文不介绍git难点,如版本回溯和分支管理。
  • 获取Git修改的文件列表

    万次阅读 2017-06-11 22:13:04
    Git获取修改的文件
  • git 本地仓库的使用 基本信息配置 设置用户名 git config --global user.name "xiahuadong1981" 设置用户名邮箱 git config --global user.email "17317976823@163.com" 初始化一个新的git仓库 打开项目文件夹 ...
  • Git 本地操作

    千次阅读 2016-01-02 23:33:21
    官方下载网站 官方文档 Amend Last Commit 修正上次提交 Stage Changed Files to Commit 缓存修改的文件为提交 Ustage to Commit 从本次提交中撤除 ... Fetch 获取 Prune 清除 Push 上传 Unstaged Cha
  • git本地无法上传到远程的问题解决方法 正常的创建本地git仓库然后上传到远程的方案参考另一篇博客: 用git建立本地仓库并与远程仓库连接 但是在push过程中可能出现无法连接的问题, 本文将对常见的具体问题和解决方案...
  • 一、背景 因为代码都迁移到了Gitlab,所以Jenkins编译的时候我们都需要将之前的SVN信息换成现在的Git信息。最近编译一个Lib库的时候,因为团队规定上传...因此我们就需要在Gradle脚本中,获取Git Branch ,Git Commit
  • git 覆盖本地修改When you learn to code, sooner or later you'll also learn about Version Control Systems. And while there are many competing tools in this space, one of them is the de facto standard ...
  • git checkout -b dev 新建并切换到本地dev分支 git pull origin dev 本地分支与远程分支相关联 在本地新建分支并推送到远程 git checkout -b test git push origin test 这样远程仓库中也就创建了一个test分支  ===...
  • Git本地服务器搭建及使用

    万次阅读 2018-07-02 15:46:59
    众所周知的Github便是基于Git的开源代码库以及版本控制系统,由于其远程托管服务仅对开源免费,所以搭建本地Git服务器也是个较好的选择,本文将对此进行详细讲解。(推荐一家提供私有源代码免费托管的网站:Bit...
  • Git本地操作以及常用命令

    千次阅读 2014-03-30 22:48:42
    Git 常用命令 Git  是一个很强大的分布式版本控制系统。它不但适用于管理大型开源软件的源代码,管理私人的文档和源代码也有很多优势。 Git常用操作命令: 1) 远程仓库相关命令 检出仓库:$ git clone ...
  • git基本使用小结 之前公司的版本控制工具一直用的是svn,最近要改用git,之前用svn一直很熟,没用过git,顺应公司形势学习一下最基本的使用,避免正式切换后影响项目进度。 下载、安装都很简单,网上有很多资源,选...
  • Git本地服务器搭建及使用详解

    千次阅读 2016-05-20 14:39:00
    Git本地服务器搭建及使用 Git是一款免费、开源的分布式版本控制系统。众所周知的Github便是基于Git的开源代码库以及版本控制系统,由于其远程托管服务仅对开源免费,所以搭建本地Git服务器也是个较好的选择,本文将...
  • Git本地init与push到远程仓库

    千次阅读 2018-09-23 14:31:06
    1、先进行git配置项查看与修改初始化 .git删除:rm -rf .git 查看信息:git config --list $ git config --list core.symlinks=false core.autocrlf=true core.fscache=true color.diff=auto color.status=auto ...
  • 目前最火的版本控制软件就是Git了吧?你要是还用SVN或者CVS什么的都不好意思在圈里打招呼!前天我就遇到这种情况了,QQ上和老同学聊起自己用SVN来管理程序版本,好麻烦,当场就惨遭鄙视---“你还用SVN啊?你Out了!...
  • 本地第一次提交项目到新建远程仓库第一步:创建github远程仓库第二步:下载git本地软件(windows版)第三步:添加keygen ssh-keygen -t rsa -C "your_email@youremail.com"第四步:远程仓库添加密钥 :...
  • 解决git本地多ssh key的问题

    千次阅读 2016-05-15 15:32:07
    最近了解和学习了一下Git,在简书上看到一篇文章不错,以防以后遇到同样的问题。http://www.jianshu.com/p/b29a3c275f68 最近手上一个项目需要使用到一台服务器作为专用的部署服务器,在实施过程中遇到了一些问题...
  • 1.查看本地分支 git branch 绿色表示当前分支 ####################################################### 2.查看远程分支 git branch -a ########################################...git checkout branch_name ...
  • git安装(windows平台) 外网网站下载git会很慢,所以推荐下面这个网站 https://npm.taobao.org/mirrors/git-for-windows/ 找到相对较新的版本,根据电脑是32位/64位下载对应版本 git使用 1,先创建库 $mkidir ...
  • git本地仓库

    千次阅读 2018-10-22 22:38:47
    git 以下步骤均在Deepin 15.7 环境下记录,不同Linux发行版命令可能不同。(Deepin 基于 Centos 开发,所以Centos 应该也是OK的) ...git处理数据更像是一种 stream of...committed: 文件已经成功的存储到本地...
  • git 删除本地和远程分支If you have previously worked with Git for versioning your Angular code then there is a good chance that you have encountered a situation in which you wanted to delete a remote ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 56,503
精华内容 22,601
关键字:

获取git本地name