Git global setup
git config --global user.name "@name"
git config --global user.email "@email"
Create a new repository
git clone https://xxx.git
cd new_folder
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 https://xxx.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_name
git remote add origin https://xxx.git
git push -u origin --all
git push -u origin --tags
删除远程分支
git push origin --delete <BranchName>
删除本地分支
git branch -d <BranchName>
新建分支
git checkout -b <BranchName>
git push --set-upstream origin <BranchName> // 将本地分支和远程分支关联
合主分支
git pull
git merge origin/master
版本回退
git reset --hard
远程覆盖本地
git fetch --all
git reset --hard origin/master
git pull
本地覆盖远程
git push origin develop:master -f
// 把本地的 develop 分支强制(-f)推送到远程 master
// 但是上面操作,本地的 master 分支还是旧的,通常来说应该在本地做好修改再去 push 到远端,所以我推荐如下操作
git checkout master
// 切换到旧的分支
git reset --hard develop
// 将本地的旧分支 master 重置成 develop
git push origin master --force
//再推送到远程仓库
git fetch 只是下载远程的库的内容,不做任何的合并
同步 Fork 他人的最新代码
查看是否有远程分支的别名
git remote -v
示例:git remote -v
origin https://github.com/a/a.git (fetch)
origin https://github.com/a/a.git (push)
添加 Fork 代码 Git 地址:git remote add upstream https://github.com/b/b.git
upstream https://github.com/b/b.git (fetch)
upstream https://github.com/b/b.git (push)
origin https://github.com/a/a.git (fetch)
origin https://github.com/a/a.git (push)
拉取最新代码:git fetch upstream
代码合并:git merge upstream/master
代码提交:git push
Git 工具 - 储藏(Stashing)
当你正在进行项目中某一部分的工作,里面的东西处于一个比较杂乱的状态,而你想转到其他分支上进行一些工作。问题是,你不想提交进行了一半的工作,否则以后你无法回到这个工作点。解决这个问题的办法就是git stash
命令。
- git stash:存储你现在的工作在本地
- git stash list:查看现有的储藏
- git stash apply:重新应用你刚刚实施的储藏
- git stash apply stash@{2}:重新应用指定状态的储藏
- git stash apply --index:重新应用被暂存的变更
- git stash drop stash@{0}:移除储藏列表[0]
- git stash pop:重新应用储藏,同时立刻将其从堆栈中移走
取消储藏(Un-applying a Stash)
git stash show -p stash@{0} | git apply -R
同样的,如果你沒有指定具体的某个储藏,Git 会选择最近的储藏:
git stash show -p | git apply -R
你可能会想要新建一个別名,在你的 Git 里增加一个 stash-unapply
命令,这样更有效率。例如:
git config --global alias.stash-unapply '!git stash show -p | git apply -R'
git stash apply
#... work work work
git stash-unapply
解决冲突
对于一般的冲突,执行以下命令都能解决
git add -A
git commit -m '提交'
git pull
git merge origin/master (如果没有冲突可直接执行下面语句,有冲突的话先对比解决冲突,解决后再执行下面的语句)
git reflog
只要HEAD发生变化,就可以通过reflog查看到
网友评论