基本操作
Git基本配置(git config)
git config可以配置git的参数,可以使用git config --list
查看已经配置的git参数。其中有三个级别的保存位置,—system、—global、—local,分别表示所有用户(本系统)、当前用户(全局)、本地配置(当前目录),默认使用—local。
配置用户名及邮箱
在使用Git提交前,必须配置用户名和邮箱,这些信息会永久保存到历史记录中。
|
|
创建Git仓库(git init)
可以直接调用
git init
初始化当前目录,即创建Git仓库。获取Git仓库(git clone)
如果需要克隆远程仓库,可以使用
git clone
,比如:1git 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
查看当前工程的所有提交的日志。
|
|
远程仓库
可以使用git remote
查看当前的远程库。git remote -v
可以显示对应的克隆地址。(对于多个远程仓库很有用)
添加远程仓库git remote add [short_name] [url]
可以添加新的远程仓库。
例如:
|
|
修改远程仓库
方法一:修改命令
|
|
注:[url]表示你的Github仓库地址。
方法二:先删除后添加
|
|
方法三:直接修改config文件
从远程仓库抓取数据git fetch [remote-name]
可以从远程仓库抓取数据到本地。
也可以使用git pull
推送数据到远程仓库
|
|
默认使用origin和master。
默认使用origin和master。
⭐强制推送数据到远程仓库⭐
我们可以使用git push --force origin master
强制推送本地代码到远程仓库,这意味着将覆盖掉远程仓库的代码。(注:—force参数也可以使用-f替代)
查看远程仓库信息
|
|
远程仓库的删除和重命名
|
|
修改提交信息
第一种情况
如果需要修改的提交信息是最后一次提交并且没有推送(push),那么可以使用如下命令进行修改:
|
|
第二种情况
如果需要修改的不是最后一次提交的提交信息,那么我们需要使用git rebase命令
确定修改的提交
我们可以使用
git log
命令查看需要修改的提交是倒数第几次提交指定变基对象
使用命令
git rebase -i HEAD~n
回退到倒数第n次提交。运行命令后会进入到编辑器,出现n条commit信息,要修改哪条就将其前面pick改成edit,保存并退出。修改提交信息
经过变基之后我们可以像第一种情况一样使用
git commit --amend
命令修改提交信息(可以直接输入git commit --amend
然后进入编辑器修改提交内容也可以使用-m直接指定新的提交内容)。注:变基(rebase)和合并(merge)都是对分支进行操作,它们的不同之处在于变基可以修改历史。执行
git commit --amend
后会产生一个新的分支,如果需要保留当前分支则需要删除之前的分支,然后将当前分支命名为之前的分支名。执行变基
执行
git rebase –continue
,如果提示Successfully rebased and updated则表示变基成功。
分支操作
显示所有分支
使用git branch
可显示当前所有分支。
可以使用—merged和—no-merged查看已经合并、未合并的分支。
创建及切换分支
|
|
也可以使用下面命令直接切换并创建分支
|
|
注意切换分支时请保持工作目录没有未提交的修改。Git鼓励使用分支,处理完问题之后合并分支即可。
分支合并
将test分支合并到master(主分支)上,需要通过下面命令:
|
|
合并之后可以使用git branch -d test删除分支。
如果合并时存在冲突,需要手工修改。
⭐删除分支⭐
删除test分支
|
|
主干更换
将某个分支设置为主干master,我们可以删除 master,把 dev head 打标成 master。
|
|