git
博客专区 > xpttxsok 的博客 > 博客详情
git
xpttxsok 发表于2年前
git
  • 发表于 2年前
  • 阅读 2
  • 收藏 1
  • 点赞 0
  • 评论 0

【腾讯云】如何购买服务器最划算?>>>   

摘要: git
几个专用名词的译名如下。
        Workspace:工作区
        Index / Stage:暂存区
        Repository:仓库区(或本地仓库)
        Remote:远程仓库


//获取远程项目
git clone https://github.com/xpttxsok123/springboot.git


//创建data.txt
git status
On branch master
Your branch is up to date with 'origin/master'.
分支位于master

Untracked files:
  (use "git add <file>..." to include in what will be committed)
  使用git add以包含要提交的内容

	data.txt

nothing added to commit but untracked files present (use "git add" to track)
提交为空,未跟踪的文件已经出现,使用git add建立跟踪




//添加data.txt到暂存区
xpMac:springboot xupan$ git add data.txt 
xpMac:springboot xupan$ 
xpMac:springboot xupan$ git status
On branch master
Your branch is up to date with 'origin/master'.

Changes to be committed://要提交的变更
  (use "git reset HEAD <file>..." to unstage)//使用git reset撤销暂存区

	new file:   data.txt//新文件data.txt

xpMac:springboot xupan$ 


//提交文件
xpMac:springboot xupan$ git commit


# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
#
# On branch master
# Your branch is up to date with 'origin/master'.
#
# Changes to be committed:
#       new file:   data.txt


//提交后查看状态
xpMac:springboot xupan$ git status
On branch master
Your branch is ahead of 'origin/master' by 1 commit.
  (use "git push" to publish your local commits)//使用git push 发布你的本地提交

nothing to commit, working tree clean//没有文件可以提交



//git push 推送到GitHub
git push
//输入username,password



//再次查看状态
xpMac:springboot xupan$ git status
On branch master
Your branch is up to date with 'origin/master'.

nothing to commit, working tree clean











一、新建代码库
        # 在当前目录新建一个Git代码库
        $ git init

        # 新建一个目录,将其初始化为Git代码库
        $ git init [project-name]

        # 下载一个项目和它的整个代码历史
        $ git clone [url]

二、配置
Git的设置文件为.gitconfig,它可以在用户主目录下(全局配置),也可以在项目目录下(项目配置)。
        # 显示当前的Git配置
        $ git config --list

        # 编辑Git配置文件
        $ git config -e [--global]

        # 设置提交代码时的用户信息
        $ git config [--global] user.name "[name]"
        $ git config [--global] user.email "[email address]"
        如:git config --global user.name "胥攀"
           可以配置自己的email
           git config --global user.email "你的Email"


三、增加/删除文件
        # 添加指定文件到暂存区
        $ git add [file1] [file2] ...

        # 添加指定目录到暂存区,包括子目录
        $ git add [dir]

        # 添加当前目录的所有文件到暂存区
        $ git add .

        # 删除工作区文件,并且将这次删除放入暂存区
        $ git rm [file1] [file2] ...

        # 停止追踪指定文件,但该文件会保留在工作区
        $ git rm --cached [file]

        # 改名文件,并且将这个改名放入暂存区
        $ git mv [file-original] [file-renamed]



四、代码提交
        # 提交暂存区到仓库区
        $ git commit -m [message]

        # 提交暂存区的指定文件到仓库区
        $ git commit [file1] [file2] ... -m [message]

        # 提交工作区自上次commit之后的变化,直接到仓库区
        $ git commit -a

        # 提交时显示所有diff信息
        $ git commit -v

        # 使用一次新的commit,替代上一次提交
        # 如果代码没有任何新变化,则用来改写上一次commit的提交信息
        $ git commit --amend -m [message]

        # 重做上一次commit,并包括指定文件的新变化
        $ git commit --amend   ...



五、分支
    # 列出所有本地分支
    $ git branch

    # 列出所有远程分支
    $ git branch -r

    # 列出所有本地分支和远程分支
    $ git branch -a

    # 新建一个分支,但依然停留在当前分支
    $ git branch [branch-name]

    # 新建一个分支,并切换到该分支
    $ git checkout -b [branch]

    # 新建一个分支,指向指定commit
    $ git branch [branch] [commit]

    # 新建一个分支,与指定的远程分支建立追踪关系
    $ git branch --track [branch] [remote-branch]

    # 切换到指定分支,并更新工作区
    $ git checkout [branch-name]

    # 建立追踪关系,在现有分支与指定的远程分支之间
    $ git branch --set-upstream [branch] [remote-branch]

    # 合并指定分支到当前分支
    $ git merge [branch]

    # 选择一个commit,合并进当前分支
    $ git cherry-pick [commit]

    # 删除分支
    $ git branch -d [branch-name]

    # 删除远程分支
    $ git push origin --delete 
    $ git branch -dr 



 六、标签
    # 列出所有tag
    $ git tag

    # 新建一个tag在当前commit
    $ git tag [tag]

    # 新建一个tag在指定commit
    $ git tag [tag] [commit]

    # 查看tag信息
    $ git show [tag]

    # 提交指定tag
    $ git push [remote] [tag]

    # 提交所有tag
    $ git push [remote] --tags

    # 新建一个分支,指向某个tag
    $ git checkout -b [branch] [tag]


 七、查看信息

    # 显示有变更的文件
    $ git status

    # 显示当前分支的版本历史
    $ git log

    # 显示commit历史,以及每次commit发生变更的文件
    $ git log --stat

    # 显示某个文件的版本历史,包括文件改名
    $ git log --follow [file]
    $ git whatchanged [file]

    # 显示指定文件相关的每一次diff
    $ git log -p [file]

    # 显示指定文件是什么人在什么时间修改过
    $ git blame [file]

    # 显示暂存区和工作区的差异
    $ git diff

    # 显示暂存区和上一个commit的差异
    $ git diff --cached []

    # 显示工作区与当前分支最新commit之间的差异
    $ git diff HEAD

    # 显示两次提交之间的差异
    $ git diff [first-branch]...[second-branch]

    # 显示某次提交的元数据和内容变化
    $ git show [commit]

    # 显示某次提交发生变化的文件
    $ git show --name-only [commit]

    # 显示某次提交时,某个文件的内容
    $ git show [commit]:[filename]

    # 显示当前分支的最近几次提交
    $ git reflog

 八、远程同步
    # 下载远程仓库的所有变动
    $ git fetch [remote]

    # 显示所有远程仓库
    $ git remote -v

    # 显示某个远程仓库的信息
    $ git remote show [remote]

    # 增加一个新的远程仓库,并命名
    $ git remote add [shortname] [url]

    # 取回远程仓库的变化,并与本地分支合并
    $ git pull [remote] [branch]

    # 上传本地指定分支到远程仓库
    $ git push [remote] [branch]

    # 强行推送当前分支到远程仓库,即使有冲突
    $ git push [remote] --force

    # 推送所有分支到远程仓库
    $ git push [remote] --all


 九、撤销
    # 恢复暂存区的指定文件到工作区
    $ git checkout [file]

    # 恢复某个commit的指定文件到工作区
    $ git checkout [commit] [file]

    # 恢复上一个commit的所有文件到工作区
    $ git checkout .

    # 重置暂存区的指定文件,与上一次commit保持一致,但工作区不变
    $ git reset [file]

    # 重置暂存区与工作区,与上一次commit保持一致
    $ git reset --hard

    # 重置当前分支的指针为指定commit,同时重置暂存区,但工作区不变
    $ git reset [commit]

    # 重置当前分支的HEAD为指定commit,同时重置暂存区和工作区,与指定commit一致
    $ git reset --hard [commit]

    # 重置当前HEAD为指定commit,但保持暂存区和工作区不变
    $ git reset --keep [commit]

    # 新建一个commit,用来撤销指定commit
    # 后者的所有变化都将被前者抵消,并且应用到当前分支
    $ git revert [commit]


 十、其他
    # 生成一个可供发布的压缩包
    $ git archive









 

共有 人打赏支持
粉丝 5
博文 161
码字总数 95015
×
xpttxsok
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: