003.progit笔记---git基本操作

01、初始化仓库

  $ git init

02、Untrack和Modified文件加入暂存区

  $ git add *.c

  $ git add LICENSE

03、暂存区文件提交到仓库(文件加入暂存区后,又被修改,只会提交加入暂存区的文件状态)

  $ git commit -m 'init project version'

  $ git commit  (弹出编辑器,供编辑提交信息)

  $ git commit -v  (弹出编辑器,且默认带上git diff的内容,供编辑提交信息)

  $ git commit -a -m 'commit all tracked file'  (跳过暂存步骤,提交所有被管理的文件)

04、从远程仓库克隆

  $ git clone https://github.com/libgit2/libgit2 (当前目录创建libgit2目录,并从远程仓库克隆.git文件夹,然后读取最新版本的文件拷贝到工作目录)

  $ git clone https://github.com/libgit2/libgit2 mylibgit(当前目录创建mylibgit目录)

05、检查工作区文件状态

  $ git status

  可能结果: nothing to commit, working directory clean (工作区很干净)

        Untracked files: (工作区有新增文件)

        Changes to be comitted: (暂存文件未提交)

        Changes not staged for commit: (已提交的文件被修改,且未暂存)

  注:当文件同时在Changes to be comitted:和Changes not staged for commit:,说明暂存文件被修改

06、工作区文件状态简览

  $ git status -s    $ git status --short

     M README (被修改,且没放入暂存区)

  MM Rakefile (被修改,放入暂存区后又被修改)

  A     lib/git.rb (新添加到暂存区文件)

  M    lib/simplegit.rb (被修改,且放入暂存区)

  ??   LICENSE.txt  (新添加Untracked文件)

07、查看修改

  $ git diff  (查看未暂存修改)

  $ git diff --staged  (查看已暂存的修改)

  $ git difftool --tool-help  (查看系统支持的差异对比插件)

  $ git difftool --tool=vimdiff3  (用vimdiff3插件查看未暂存修改)

  $ git difftool --staged  --tool=vimdiff3  (用vimdiff3插件查看已暂存修改)

08、删除文件

  $ git rm README (从工作目录 & 暂存区删除README文件,git commit即可提交。若手动删除文件,需要先保存到暂存区,再提交)

  $ git rm -f log/*.log  (已修改未暂存或已暂存 的文件需要强制从暂存区删除才能成功。删除log目录下,任何以.log结尾的文件)

  $ git rm --cached *~   (从暂存区删除任何以~结尾的文件,*号需要转义,但工作区保留)

09、移动文件

  $ git mv file_from file_to

  等价于

  $ mv README.md README

  $ git rm README.md

  $ git add README

  此时,查看git status

  $ git status

  On branch master

  Changes to be committed:

     (use "git reset HEAD <file>..." to unstage)

     renamed: README.md -> README

 10、撤销操作--amend

  1. $ git commit fileA -m 'commit file A'
  2. $ git add fileB
  3. $ git commit --amend -m 'commit file A and file B'  (会与第一步的提交合并,只有1条提交记录)

11、取消暂存

  $ git reset HEAD fileName

  $ git reset HEAD fileName --hard(可能导致工作目录当前所有进度丢失)

12、撤销工作区修改

  $ git checkout -- file (不可逆,慎用)

13、远程仓库操作

  $ git remote  (展示远程仓库简写名)

  $ git remote -v  (展示远程仓库简写名 & 地址 & 推拉信息)

  $ git remote add <shortname> <url>  (添加远程仓库)

  $ git fetch [remote-name]  (从远程仓库拉取)

  $ git push <remote-name> <local-branch>  (将本地分支推到远程仓库)

  $ git remote show [remote-name]  (查看远程仓库详细信息)

  $ git remote rename <old-remote-name> <new-remote-name>  (远程仓库重命名)

  $ git remote rm <remote-name>  (移除远程仓库,仅仅删掉本地)

14、简介的远程仓库操作

  $ git clone <remote-url>  (克隆远程仓库,并命名为origin,且设置本地master分支跟踪远程master分支)

  $ git push origin master  (远程仓库名orgin,且推送本地master分支)

原文地址:https://www.cnblogs.com/geniushuangxiao/p/12629061.html