之前都是用TortoiseGit 提交代码到GitHub,发现会遇到各种问题,没有直接在git Bash中操作方便, 用到了一些git命令,做一下记录。
文章目录
一、提交代码二、合并代码
other创建分支:查看所有分支切换分支合并某分支到当前分支:创建+切换分支:撤销 / 回滚删除分支(远程/本地)储藏(Stashing)删除本地修改git pull => git fetch && git mergeGit global setupCreate a new repositoryExisting folderExisting Git repository强制合并某个远程分支拉取 远程仓库中 dev 分支上的代码删除 本地分支在本地BranchA上修改的内容,切换到 本地BranchB 上在master分支合并特定分支的某一次提交记录.gitignore 失效
一、提交代码
1、提交代码到本地库中 git commit -m '描述内容' 2、拉取该分支下的内容,与自己在本地库改写的合并 git pull origin <分支名称> 3、提交代码到github上 git push origin <分支名称>
二、合并代码
1、查看所有分支(其中带 * 号的:当前使用分支) git branch -a 2、切换分支 git checkout <分支名称> 3、合并某分支到当前分支: git merge <分支名称> : 把develop 合并到master–> git merge develop 4、提交合并的代码 : git pull :拉取当前仓库的代码 git push origin <分支名称> 合并提交 到主分支上
other
用到的git命令:
创建分支:
git branch <分支名称>
查看所有分支
git branch -a
切换分支
git checkout <分支名称>
合并某分支到当前分支:
git merge <分支名称>
创建+切换分支:
git checkout -b <分支名称>
撤销 / 回滚
在本地
git log --oneline -n10
git reset --hard
<commit id
>
git push -f
https://blog.csdn.net/ligang2585116/article/details/71094887
删除分支(远程/本地)
https://blog.csdn.net/qq_32452623/article/details/54340749
储藏(Stashing)
应用场景: 当你正在进行项目中某一部分的工作,里面的东西处于一个比较杂乱的状态,而你想转到其他分支上进行一些工作。问题是,你不想提交进行了一半的工作,否则以后你无法回到这个工作点。解决这个问题的办法就是git stash命令。
https://git-scm.com/book/zh/v1/Git-工具-储藏(Stashing)
删除本地修改
1.
git clean -df
2.
git reset --hard
第一个命令只删除所有untracked的文件,如果文件已经被tracked, 修改过的文件不会被回退。
而第二个命令把tracked的文件revert到前一个版本,对于untracked的文件
(比如编译的临时文件
)都不会被删除。
---------------------
作者:王的璋
来源:
原文:https://blog.csdn.net/qilvmilv/article/details/53559939
版权声明:本文为博主原创文章,转载请附上博文链接!
git pull => git fetch && git merge
Git global setup
git config --global user.name "<用户名>"
git config --global user.email "<邮箱>"
Create a new repository
git clone git@
<服务器地址
>:
<目录路径
>/website.git
cd website
touch README.md
git add README.md
git commit -m
"add README"
git push -u origin master
Existing folder
cd existing_folder
git init
git remote add origin git@
<服务器地址
>:
<目录路径
>/website.git
git add
.
git commit -m
"Initial commit"
git push -u origin master
Existing Git repository
cd existing_repo
git remote
rename origin old-origin
git remote add origin git@
<服务器地址
>:
<目录路径
>/website.git
git push -u origin --all
git push -u origin --tags
强制合并某个远程分支
git fetch --all
git reset --hard origin/master
(这里master要修改为对应的分支名
)
拉取 远程仓库中 dev 分支上的代码
git clone xxxxxxx/test.git
cd test
git pull origin dev
删除 本地分支
查看项目的分支们
(包括本地和远程
)
命令行
: $
git branch -a 例如,$
git branch -a
先切换到已有的一个分支,再删除本地分支
命令行
: $
git branch -d
<BranchName
>
在本地BranchA上修改的内容,切换到 本地BranchB 上
1. 在 BranchA 先储藏
$
git stash
2. 切换到 BranchB
$
git checkout B
3. 在 BranchB 上弹出 储藏内容
$
git stash pop
1. 不在 BranchA 上
git commit
2. 在 BranchA 上 新建 BranchB
$
git checkout -b BranchB
3. 切换到 BranchB
$
git checkou BranchB
这时候 修改的内容在 BranchA 和 BranchB 上都有
4. 在 BranchB 上 commit
$
git commit -a
修改保留在 BranchB 上
5. 切换到 BranchA
BranchA 上没有保留修改的内容
在master分支合并特定分支的某一次提交记录
场景:feature分支上的Commit 62ecee非常重要,它含有一个bug的修改,或其他人想访问的内容。无论什么原因,你现在只需要将62ecee 合并到master,而不合并feature上的其他commits,所以我们用git cherry-pick命令来做:
1. 查看 特定分支branchA 上的 commit 历史记录
$
git checkout branchA
$
git log
commit 62ecee
2. 切换至master 分支
$
git checkout master
3. 合并 提交记录 62ecee
$
git cherry-pick 62ecee
.gitignore 失效
原因是:在本地存有track 缓存,清除掉,重新提交就好
git rm -r --cached .
git add .
git commit -m 'update .gitignore'