基本操作2-常用命令

git init
该命令执行完后会在当前目录生成一个 .git 目录。
git init newrepo
使用我们指定目录作为Git仓库。
 
$ git add *.c $ git add README $ git commit -m '初始化项目版本'
以上命令将目录下以 .c 结尾及 README 文件提交到仓库中。
 
$ ssh-keygen -t rsa -C "[email protected]"
使用以上命令生成SSH Key
 
$ mkdir runoob-git-test # 创建测试目录 $ cd runoob-git-test/ # 进入测试目录 $ echo "# 菜鸟教程 Git 测试" >> README.md
# 创建 README.md 文件并写入内容
$ ls # 查看目录下的文件 README $ git init # 初始化 $ git add README.md # 添加文件到暂存区(或叫索引区) git add * 添加所有 $ git commit -m "添加 README.md 文件" # 提交版本库并备注信息,-a 标志来跳过 git add 这一步,-m 标志通过命令行而不启动一个编辑器来传递提交信息,
$ git remote add origin [email protected]:yourName/yourRepo.git
#添加远程仓库或连接,后面的yourName和yourRepo表示你再github的用户名和刚才新建的仓库 $ git remote add origin2 [email protected]:tianqixin/runoob-git-test.git
# 添加仓库 origin2
$ git remote rm origin2 # 删除仓库 origin2
 
$ git remote -v
# 查看远程库的实际链接地址
 
$ git fetch origin
#拉取远程仓库最新的数据,该命令执行完后需要执行git merge合并下载的数据。
git merge <branch>
#将fetch的数据合并到当前分支
git add <filename> #将它们标记为合并成功
git diff <source_branch> <target_branch> #在合并改动之前预览差异
fetch与pull的区别
1. git fetch:相当于是从远程获取最新版本到本地,不会自动merge
git fetch origin master:tmp
git diff tmp
git merge tmp
#从远程获取最新的版本到本地的test分支上,之后再进行比较合并
2. git pull:相当于是从远程获取最新版本并merge到本地
git pull origin master
上述命令其实相当于git fetch 和 git merge
在实际使用中,git fetch更安全一些
因为在merge前,我们可以查看更新情况,然后再决定是否合并
 
git checkout . #本地所有修改的。没有的提交的,都返回到原来的状态
git stash #把所有没有提交的修改暂存到stash里面。可用git stash pop回复。
git reset --hard HASH #返回到某个节点,不保留修改。
git reset --soft HASH #返回到某个节点。保留修改
 
$ touch runoob-test.txt # 添加文件 $ git commit -a -m "添加到远程" # -a 标志来跳过 git add 这一步,-m 标志通过命令行而不启动一个编辑器来传递提交信息 $ git push origin master # 推送到 Github
 
 
创建一个叫做"feature_x"的分支,并切换过去:
git checkout -b feature_x
切换回主分支:
git checkout master
再把新建的分支删掉:
git branch -d feature_x
除非你将分支推送到远端仓库,不然该分支就是 不为他人所见的:
git push origin <branch>
 
 
git rm --cached <file> #会直接从暂存区删除文件,工作区则不做出改变
 
$ git checkout -b testing # 创建并切换到testing分支,-b即branch ,
是$ git branch testing 和$ git checkout testing 的简写
注意:当切换分支的时候,Git 会重置你的工作目录,使其看起来像回到了你在那个分支上最后一次提交的样子。 Git 会自动添加、删除、修改文件以确保此时你的工作目录和这个分支最后一次提交时的样子一模一样。比如要是你在工作目录中对testing做了修改,但是切换到master分支时没有提交,此时对testing做的修改都会被清除掉。
 
$ git branch -d <branch> #删除一个分支
git br -d <branch> # 删除某个分支
git br -D <branch> # 强制删除某个分支 (未被合并的分支被删除的时候需要强制)
 
git branch -a #看所有分支
 
git pull #拉取服务器分支
 
git merge 【分知名】 #合并开发和测试分支
 
rm api/runtime/ar-editor-js/* #清除缓存
 
1.$ git branch -a # 查看所有远程分支
2.$ git branch     # 查看本地分支
 
检查当前文件状态
$ echo 'My Project' > README $ git status On branch master Untracked files: (use "git add <file>..." to include in what will be committed) README nothing added to commit but untracked files present (use "git add" to track)
在状态报告中可以看到新建的 README 文件出现在 Untracked files 下面。 未跟踪的文件意味着 Git 在之前的快照(提交)中没有这些文件
 
 
跟踪新文件
使用命令 git add 开始跟踪一个文件。 所以,要跟踪 README 文件,运行:
$ git add README
此时再运行 git status 命令,会看到 README 文件已被跟踪,并处于暂存状态:
$ git status On branch master Changes to be committed: (use "git reset HEAD <file>..." to unstage) new file: README
只要在 Changes to be committed 这行下面的,就说明是已暂存状态。 如果此时提交,那么该文件此时此刻的版本将被留存在历史记录中
 
$ git clone https://github.com/libgit2/libgit2 mylibgit
# 克隆远程仓库到本地并命名为 mylibgit
 
# 把刚移除的 README 添加回来:
$ git add README
# 然后对其重名:
$ git mv README README.md $ ls README.md
 
# 查看提交历史
git log
 
 
#假如你想丢弃你在本地的所有改动与提交,可以到服务器上获取最新的版本历史,并将你本地主分支指向它:
git fetch origin
git reset --hard origin/master

猜你喜欢

转载自www.cnblogs.com/TomBombadil/p/11006425.html
今日推荐