Git常用操作记录

基本操作

Git基本配置(git config)

git config可以配置git的参数,可以使用git config --list查看已经配置的git参数。其中有三个级别的保存位置,—system、—global、—local,分别表示所有用户(本系统)、当前用户(全局)、本地配置(当前目录),默认使用—local。

配置用户名及邮箱
在使用Git提交前,必须配置用户名和邮箱,这些信息会永久保存到历史记录中。

1
2
git config --global user.name "Peter"
git config --global user.email Peter@gmail.com
  1. 创建Git仓库(git init)

    可以直接调用git init初始化当前目录,即创建Git仓库。

  2. 获取Git仓库(git clone)

    如果需要克隆远程仓库,可以使用git clone,比如:

    1
    git clone https://github.com/tensorflow/tensorflow.git

提交更新

Git中每个文件都有三种状态:committed、staged、modified。它们之间关系如下:

modified=> staged=> committed

如果你在本地修改了文件,则文件状态就变成modified;如果使用git add命令,文件的状态变成staged;如果使用git commit命令,文件的状态就变成commited。

还有一种文件状态,未跟踪状态(unversioned/untracked),通过使用git add可以把未跟踪状态变更为staged;通过git rm可以将staged或者committed状态变为未跟踪状态。

git status: 查看在你上次提交之后是否有修改。

git add: 将想要快照的内容写入缓存区

git commit: 将缓存区内容添加到仓库中

git rm: 如果只是简单地从工作目录中手工删除文件,运行 git status 时就会在 Changes not staged for commit 的提示。要从 Git 中移除某个文件,就必须要从已跟踪文件清单中移除,然后提交。可以用以下命令完成此项工作

查看提交历史(git log)

使用git log查看当前工程的所有提交的日志。

1
2
3
git log --stat # 仅显示摘要选项
git log --pretty=oneline # 定制记录格式
git log --graph # 图像化分支和版本更新

远程仓库

可以使用git remote查看当前的远程库。
git remote -v可以显示对应的克隆地址。(对于多个远程仓库很有用)

添加远程仓库
git remote add [short_name] [url]可以添加新的远程仓库。

例如:

1
git remote add origin https://github.com/username/projectname.git

修改远程仓库

方法一:修改命令

1
git remote set-url origin [url]

注:[url]表示你的Github仓库地址。

方法二:先删除后添加

1
2
git remote rm origin
git remote add origin [url]

方法三:直接修改config文件

从远程仓库抓取数据
git fetch [remote-name]可以从远程仓库抓取数据到本地。
也可以使用git pull

推送数据到远程仓库

1
git push [remote_name] [branch_name]

默认使用origin和master。

默认使用origin和master。

⭐强制推送数据到远程仓库⭐

我们可以使用git push --force origin master强制推送本地代码到远程仓库,这意味着将覆盖掉远程仓库的代码。(注:—force参数也可以使用-f替代)

查看远程仓库信息

1
git remote show origin

远程仓库的删除和重命名

1
2
git remote rename [old_name] [new_name]
git remote rm [remote_name]

修改提交信息

第一种情况

如果需要修改的提交信息是最后一次提交并且没有推送(push),那么可以使用如下命令进行修改:

1
git commit --amend -m "your new comment"

第二种情况

如果需要修改的不是最后一次提交的提交信息,那么我们需要使用git rebase命令

  1. 确定修改的提交

    我们可以使用git log命令查看需要修改的提交是倒数第几次提交

  2. 指定变基对象

    使用命令git rebase -i HEAD~n回退到倒数第n次提交。运行命令后会进入到编辑器,出现n条commit信息,要修改哪条就将其前面pick改成edit,保存并退出。

  3. 修改提交信息

    经过变基之后我们可以像第一种情况一样使用git commit --amend命令修改提交信息(可以直接输入git commit --amend然后进入编辑器修改提交内容也可以使用-m直接指定新的提交内容)。

    注:变基(rebase)和合并(merge)都是对分支进行操作,它们的不同之处在于变基可以修改历史。执行git commit --amend后会产生一个新的分支,如果需要保留当前分支则需要删除之前的分支,然后将当前分支命名为之前的分支名。

  4. 执行变基

    执行git rebase –continue,如果提示Successfully rebased and updated则表示变基成功。

分支操作

显示所有分支

使用git branch可显示当前所有分支。
可以使用—merged和—no-merged查看已经合并、未合并的分支。

创建及切换分支

1
2
git branch test # 创建testing 分支
git checkout test # 切换到testing分支

也可以使用下面命令直接切换并创建分支

1
git checkout -b test

注意切换分支时请保持工作目录没有未提交的修改。Git鼓励使用分支,处理完问题之后合并分支即可。

分支合并

将test分支合并到master(主分支)上,需要通过下面命令:

1
2
git checkout master
git merge test

合并之后可以使用git branch -d test删除分支。
如果合并时存在冲突,需要手工修改。

⭐删除分支⭐

删除test分支

1
git branch -d test

主干更换

将某个分支设置为主干master,我们可以删除 master,把 dev head 打标成 master。

1
2
git branch -D master
git checkout -b master
显示 Gitment 评论