您的位置:首页 > 其它

Git 常用命令总结

2016-02-15 14:32 295 查看
创建空目录 mkdir test
进入仓库目录 cd test
使用pwd命令查看文件路径

第一步 初始化成Git可管理的仓库 git init
第二步 添加文件到仓库 git add <file>
第三步 提交到仓库 git commit -m "注释"

使用 git status 查看结果, git diff <file> 查看具体结果
使用 git log 查看历史操作记录 git log --pretty=oneline
使用 git reset --hard HEAD^ 返回上一个版本 git reset --hard ******(前几

位的commit id)返回对应的版本

使用 get reflog 查看每一次的命令 可用来回到最新版本
使用 git diff HEAD -- <file> 命令可以查看工作区和版本库里面最新版本的区



使用 git checkout -- <file> 撤销工作区的修改(撤销add之前的修改)
使用 git reset HEAD <file> 撤销暂存区的修改 (撤销commit之前的修改)

使用 rm <file> 删除文件 git rm <file>在版本库中删掉 在使用 add commit

提交

使用 ssh-keygen -t rsa -C "youremail@example.com" 创建 SSH key
使用 SSH协议 比 使用https 协议 速度更快 并且不需要每次输入口令

使用 git remote add origin git@github.com:xxx/xxx.git 命令 关联远程仓库

使用 git push -u origin master 第一次将本地的master分支全部推送到远程仓

库 以后 使用 git push origin master 提交即可

使用 git clone git clone git@github.com:xxx/xxx.git 将远程仓库的内容

clone 到本地。当从远程仓库clone是,默认情况下,只能看到本地的master分支

,看不到其他分支,若想在<branch>分支上开发时,必须创建远程origin的

<branch>分支到本地,使用命令 git checkout -b <branch> origin/<branch>

使用 git checkout -b <branch> 创建并切换到新分支
使用 git branch <branch> 创建分支
使用 gti checkout <branch> 切换到分支<branch>

使用 git branch 查看分支 *所在位置为当前分支

使用 git merge <branch> 将<branch>分支合并到master
使用 git branch -d <branch> 删除分支<branch>
使用 git log --graph 命令可以看到分支合并图

使用 git merge --no-ff -m "merge with no-ff" <branch> 使用普通模式合并

,这样可以通过命令 git log --graph --pretty=oneline --abbrev-commit查看

合并历史,快速合并模式不能查看历史

使用 git branch -D <name> 强行删除一个没有被合并过的分支

使用 git remote 查看远程仓库信息, git remote -v 查看详细信息
使用 git push origin master 将本地master分支推送到远程仓库
使用 git push origin <branch> 将本地<branch>分支推送到远程仓库

当工作进行一半,需要修复一个BUG时,可以使用命令 git stash 将当前的工作

隐藏,然后想在哪个分支上修复BUG,就在哪个分支上创建BUG分支,解决完后在

合并分支。合并分支(先切换到父分支,在执行合并分支命令)。解决完BUG后,

切换到工作分支,然后使用命令查看分支工作情况 git stash list .Git 将

stash内容保存在某个地方,此时需要恢复一下,有两个方法:1. git stash

apply 恢复,并要使用命令 git stash drop 手动删除stash 内容。 2. 使用git

stash pop ,恢复的同时把stash 内容也删了。

git pull origin master //从Github上pull到本地源码库
git config --list //查看配置信息

当两人同时push时,后提交的人需要解决冲突在提交,先pull前者的提交,然后

merge到你的本地分支,手动解决冲突。然后你就可以push你的提交了。
当解决完冲突后 merge 到master上之后,master 上会比合并的那个分支

<branch>多提交一次,两个分支的内容会不一样,可以再将master再merge到合并

分支<branch>,使两者保持一致,不过没有必要,因为之前merge过了,并且已经

修改过了(解决冲突)。修改之后合并分支<branch>就没有作用了,可以删掉。

快速合并模式和普通合并模式的区别:
ff和no ff的结果都是一样的,都会合并,其最大区别在于,ff会"默默"地合并,其仅

仅是将指针移动到分支的最新处(当然删除分支并不会对master产生任何影响),而

no ff则是重新建立了一个commit,然后将合并当做一个comiit来处理,自然就产生

了合并的信息.

所以,所谓的分支信息丢失,在这里是指:合并的时候,master的log里面没有任何的

合并记录!

所以,可想而知,如果你的master很重要,某一次合并后出现问题,而你又是使用ff,

这里没有任何记录可以让你回退版本的!(回退只有靠commit id,只有commit 操

作才会产生 commit id ,ff 无法回退到之前版本).

当出现:



原因是远程仓库的内容和你试图想提交的有冲突。通过使用命令 git pull 将最新的提交抓取下来,然后在本地进行合并,解决冲突后提交。如果使用 git pull 出现:



说明本地分支和远程分支的链接关系没有创建,使用命令 git branch --set-upstream branch-name origin/branch-name 然后在进行拉取。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: